Python index()函数在我的代码中表现得很奇怪

Python index()函数在我的代码中表现得很奇怪,python,Python,我试图从一个列表中找到一个非整数的索引,但是当为不同的值运行脚本时,每次都会得到不同的索引! 我使用的索引()是否不符合预期?我非常感谢你的帮助 m = [1, 2, '.', 3] pos = int() for y in m: if y != int(): pos = m.index(y) print(pos) 对于此特定列表,输出打印“3”,而不是想要的“2”您需要检查y的类型,并且不需要将pos初始化为int m = [1, 2, '.', 3] for y i

我试图从一个列表中找到一个非整数的索引,但是当为不同的值运行脚本时,每次都会得到不同的索引! 我使用的索引()是否不符合预期?我非常感谢你的帮助

m = [1, 2, '.', 3]
pos = int()
for y in m:
    if y != int():
        pos = m.index(y)
print(pos)

对于此特定列表,输出打印“3”,而不是想要的“2”

您需要检查y的类型,并且不需要将pos初始化为int

m = [1, 2, '.', 3]
for y in m:
    if not isinstance(y, int):
        pos = m.index(y)
print(pos)

如果y!=int():
正在检查
y!=0
ohhh,真是个愚蠢的错误。用int()玩了半个小时,以为它是空的。非常感谢!如果类型(对象)=所需类型,请尽量避免选中
。相反,如果isinstance(对象,所需类型),请使用
。前者不支持继承或继承subclassing@SyntaxVoid谢谢你的反馈。我现在修好了谢谢你的时间!我已经尝试过用替换
来修复它,如果y==str(y):
但是你的答案更好,我会用它来进一步编码。干杯您可以使用
isinstance(y,str)