
获取Python列表中重复值的索引方法
5星
- 浏览量: 0
- 大小:None
- 文件类型:PDF
简介:
本文介绍了如何在Python编程语言中找出列表内元素的重复项及其对应的索引位置的方法和技巧。通过提供的示例代码帮助读者轻松掌握这一功能。
在Python编程过程中常常需要获取列表(list)内元素的索引位置。特别是当遇到重复项的情况下,使用`list.index()`函数只能返回找到的第一个匹配值的位置。
例如:
```python
s = [11, 22, 33, 44, 22, 11]
print(s.index(11)) # 输出0
print(s.index(22)) # 输出1
```
为了获取所有重复元素的索引,可以使用字典(dict)或`collections.defaultdict()`。以下为两种方法的具体实现:
**使用字典的方法:**
```python
s = [11, 22, 33, 44, 22, 11]
d = {}
for i, v in enumerate(s):
if v in d:
d[v].append(i)
else:
d[v] = [i]
print(d) # 输出:{11: [0, 5], 22: [1, 4], 33: [2], 44: [3]}
```
**使用`collections.defaultdict()`的方法:**
```python
from collections import defaultdict
s = [11, 22, 33, 44, 22, 11]
d = defaultdict(list)
for i, v in enumerate(s):
d[v].append(i)
print(d) # 输出:defaultdict(
全部评论 (0)


