python找出列表中所以相同元素的索引
时间: 2023-02-08 07:07:59 浏览: 212
在 Python 中可以使用 `enumerate()` 函数来找出列表中所有相同元素的索引。`enumerate()` 函数返回的是一个包含元素索引和元素值的元组,可以在循环中使用。示例如下:
```python
my_list = ['a', 'b', 'c', 'a', 'd', 'e', 'a']
indices = {}
for index, item in enumerate(my_list):
if item in indices:
indices[item].append(index)
else:
indices[item] = [index]
print(indices)
```
输出结果是:
```
{'a': [0, 3, 6], 'b': [1], 'c': [2], 'd': [4], 'e': [5]}
```
可以看到字典中的键就是列表中的元素,对应的值是索引列表,代表该元素在列表中出现的位置。
相关问题
python怎么找出一个列表中相同元素的多个索引
在Python中,你可以使用`itertools.groupby`函数结合`enumerate`来找出列表中相同元素的所有索引。这种方法基于元素值而不是它们的位置,所以如果列表中有两个相同的元素出现在不同的位置,它们会被视为相同的。下面是一个简单的例子:
```python
from itertools import groupby
def find_duplicate_indices(lst):
# 使用groupby将元素分组,键是元素值,值是该元素的迭代器
grouped = groupby(lst)
# 索引会在每个元素的迭代器中作为元组的第一个元素,因此我们需要找出那些元组的第一个元素相等的情况
return [(index, len(list(group))) for index, group in enumerate(grouped) if list(group)[0] != group[0]]
# 示例列表
example_list = [1, 2, 2, 3, 4, 4, 4]
# 找出重复元素及其索引
result = find_duplicate_indices(example_list)
print("重复元素及索引:", result)
python找出列表中指定元素的所有位置
你可以使用以下代码来找出列表中指定元素的所有位置:
```
my_list = [1, 2, 3, 2, 4, 2, 5] # 确定要查找的列表
search_item = 2 # 确定要查找的元素
# 通过循环遍历列表并比较每个元素与指定元素
# 如果相同,则将元素的索引添加到结果列表中
result = []
for i in range(len(my_list)):
if my_list[i] == search_item:
result.append(i)
# 输出结果列表
print(result)
```
在这个例子中,指定元素是`2`,因此代码将返回列表`my_list`中每个`2`的索引:`[1, 3, 5]`。
阅读全文