我有一個(gè)疑問,假設(shè)我有一個(gè)列表混合元素列表Pylist = [1,2,3,'a','b','c',2.0,2.2]現(xiàn)在,如果我檢索 1 和 6 的索引值,它會(huì)為我提供>>> Pylist[1]2>>> Pylist[6]2.0如果我檢查它們分別返回 int 和 float 的類型,但是當(dāng)我在其上使用index方法時(shí),將返回相同的索引位置,之后類型不同,索引位置和值也不同,誰能解釋一下>>> Pylist.index(2)1>>> Pylist.index(2.0)1>>>???
3 回答

POPMUISE
TA貢獻(xiàn)1765條經(jīng)驗(yàn) 獲得超5個(gè)贊
這是因?yàn)?code>2 == 2.0isTrue
和index()
方法找到滿足此條件的第一個(gè)值,搜索整個(gè)列表。

繁星淼淼
TA貢獻(xiàn)1775條經(jīng)驗(yàn) 獲得超11個(gè)贊
如果你想獲得索引2.0
值,你可以使用isinstance(Pylist[i], float)
:
[i for i,k in enumerate(Pylist) if isinstance(Pylist[i], float) and Pylist[i] == 2.0] # [6]

搖曳的薔薇
TA貢獻(xiàn)1793條經(jīng)驗(yàn) 獲得超6個(gè)贊
2您可以使用它來返回每個(gè)/的索引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]))
添加回答
舉報(bào)
0/150
提交
取消