查找列表中整数的索引



我有这个列表:

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

我怎么做才能得到整数的所有位置,例如:整数位置为:123.61012

我尝试将列表转换为全int with[int(i) for i in L if type(i)== int or i.isdigit()]然后尝试索引结果,但没有成功。

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

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()的字符串。

你可以这样做:

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。

列举列表并按如下方式检查数据类型:

L= ['p', 2, 3, 1,'T','F', 0,'L','C','H', 1,'C',0]
print(*(i for i, n in enumerate(L) if isinstance(n, int)))

输出:

1 2 3 6 10 12

i.isdigit()不能工作,因为isdigit()是字符串的方法。

[i for i in range(len(L)) if str(L[i]).isdigit]

您可以将所有内容类型转换为str,然后使用列表推导式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]

相关内容

  • 没有找到相关文章

最新更新