问题描述
我很怀疑,因为我有一个混合元素列表,如
Pylist = [1,2,3,'a','b','c',2.0,2.2]
现在,如果我检索索引值1和6,它将为我提供
>>> Pylist[1]
2
>>> Pylist[6]
2.0
如果我检查类型,它们分别返回int和float,但是当我在其上使用 index 方法时,将返回相同的索引位置,此后类型会有所不同,索引位置和值也会,谁能解释
>>> Pylist.index(2)
1
>>> Pylist.index(2.0)
1
>>>
???
解决方法
这是因为2 == 2.0
是True
,并且index()
方法会在列表中搜索满足此条件的第一个值。
如果要获取索引2.0
的值,可以使用isinstance(Pylist[i],float)
:
[i for i,k in enumerate(Pylist) if isinstance(Pylist[i],float) and Pylist[i] == 2.0] # [6]
,
您可以使用它返回每个2
/ 2.0
的索引:
for i in set(Pylist):
if Pylist.count(i) > 1:
print(" ".join([str(index) for index,value in enumerate(Pylist) if value == el]))