查找列表中整数的索引

问题描述 投票:0回答:4

我有这个清单:

L= ['p', 2, 3, 1,'T','F', 0,'L','C','H', 1,'C',0]

我该怎么做才能得到只有整数的所有位置,例如: 整数位置是: 1个 2个 3个 6个 10 12

我尝试将列表转换为所有整数

[int(i) for i in L if type(i)== int or i.isdigit()]
然后尝试索引结果,但没有用。

python list integer z-index
4个回答
0
投票

你可以这样做:

L = ['p', 2, 3, 1, 'T', 'F', 0, 'L', 'C', 'H', 1, 'C', 0]

int_positions = [i for i in range(len(L)) if isinstance(L[i], int)] 
print("Integer positions are:", " ".join(map(str, int_positions)))

isinstance
函数检查对象是否是特定类或该类的子类的实例,并返回 True 或 False。


0
投票

您可以使用 isnumeric 与列表理解:

L= ['p', 2, 3, 1,'T','F', 0,'L','C','H', 1,'C',0]
L= [str(i) for i in L]
Final= [c for c,i in enumerate(L) if i.isnumeric()]
print(Final)

输出#

[1, 2, 3, 6, 10, 12]

0
投票

您可以应用下一个代码片段:

integer_positions = [index for index, value in enumerate(L) if isinstance(value, int)]

print("All integers:", " ".join(str(i) for i in integer_positions))

这里

enumerate()
函数用于循环遍历列表并获取每个元素的索引。然后
isinstance()
函数用于检查元素是否为整数。如果是,则将其索引添加到
integer_positions
列表中。最后,整数位置列表被打印为带有
join()
str()
的字符串。


0
投票

i.isdigit() 将不起作用,因为 isdigit() 是一种字符串方法。这会起作用-

[i for i in range(len(L)) if str(L[i]).isdigit]
© www.soinside.com 2019 - 2024. All rights reserved.