Python索引整数和浮点数

问题描述

我很怀疑,因为我有一个混合元素列表,如

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.0True,并且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]))

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...