[英]Find index number for identical elements in a list
我有一个由列表和字符串组成的列表。 我想找到列表中每个元素的索引位置,它是一个字符串。 问题在于字符串与'Error'
相同。 我尝试使用以下代码:
err = [bayesian_prices.index(i) for i in bayesian_prices if i == 'Error']
不幸的是,从由252个元素组成的初始列表中,输出如下:
[39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
39, 39, 39, 39]
这恰好是第一个元素的位置,该元素不是列表,而是字符串。 然后,其他字符串位置将使用相同的索引号注册。 可能是由于所有字符串都相等。 如何获得正确的索引号?
您可以使用enumerate()内置函数来获取列表中每个字符串的索引值。 这是一个例子:
lists_and_strings = [[1, 2, 3], 'hello', [3, 4], 'error', [4, 5, 6]]
for index, element in enumerate(lists_and_strings):
if type(element) is str:
print(index)
这将打印lists_and_strings
中每个字符串元素的lists_and_strings
。
对于多样性,这是另一种方式:
lists_and_strings = [[1, 2, 3], 'hello', [3, 4], 'error', [4, 5, 6]]
str_indices = [i for i, j in enumerate(map(type, lists_and_strings)) if j is str]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.