python获取列表中指定元素下标
时间: 2023-08-30 08:10:08 浏览: 158
可以使用列表的 `index()` 方法来获取指定元素在列表中的下标,例如:
```python
my_list = ['apple', 'banana', 'orange', 'pear']
index = my_list.index('orange')
print(index) # 输出 2
```
如果列表中有多个相同的元素,则 `index()` 方法会返回第一个匹配元素的下标。如果要获取所有匹配元素的下标,可以使用列表推导式:
```python
my_list = ['apple', 'banana', 'orange', 'pear', 'orange']
indices = [i for i, x in enumerate(my_list) if x == 'orange']
print(indices) # 输出 [2, 4]
```
相关问题
python使用列表的 count 和 index 函数,求给定列表中指定元素出现的所有下标的位置
在Python中,`count()`函数用于计算列表中某个元素出现的次数,而`index()`函数则返回指定元素第一次出现的索引位置。如果你想找到所有特定元素的所有下标,可以结合这两个函数:
1. 使用`count()`获取元素出现的总次数,然后用这个次数减去1(因为`index()`从0开始计数),得到需要查找的元素个数。
2. 写一个循环,每次调用`index()`,传入目标元素,获取一次出现的索引,并将其添加到结果列表中,直到找不到该元素为止。由于`index()`会抛出`ValueError`如果元素不在列表里,所以需要处理这种异常。
下面是一个示例代码:
```python
def find_all_indices(lst, target):
count = lst.count(target)
indices = []
for _ in range(count - 1): # 要找count-1次,因为index()不会返回最后的位置
try:
indices.append(lst.index(target))
except ValueError:
break
return indices
# 示例
lst = [1, 2, 3, 2, 4, 2]
target = 2
all_indices = find_all_indices(lst, target)
print(f"{target}在列表中的所有下标是: {all_indices}")
```
python获取字符串内指定元素的多个下标
在Python中,你可以使用内置的`str.index()`或`str.find()`函数以及列表推导式来获取字符串内指定元素的多个下标。这两个函数都能返回第一个匹配项的索引位置,如果元素不在字符串中,则会抛出异常。
如果你想找到所有匹配的位置,可以这样做:
```python
def get_indices_of_element(s, element):
return [i for i in range(len(s)) if s.startswith(element, i)]
# 示例
s = "Hello, Python! Python is great!"
element = "Python"
indices = get_indices_of_element(s, element)
print(f"Element '{element}' found at indices: {indices}")
```
这个函数会返回一个包含所有匹配元素起始位置的列表。注意,`startswith()`函数从指定位置开始检查元素是否在字符串开头,所以你需要遍历整个字符串长度范围。
阅读全文