查找列表中相同元素的索引号

时间:2018-01-25 21:05:51

标签: python string list indexing

我有一个由列表和字符串组成的列表。我想找到列表中每个元素的索引位置,这是一个字符串。问题是字符串与'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]

这正是第一个元素的位置,它不是列表,而是字符串。然后使用相同的索引号注册其他字符串位置。可能是因为所有字符串都是相同的。如何获得正确的索引号?

2 个答案:

答案 0 :(得分:1)

您可以使用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中每个字符串元素的索引。

答案 1 :(得分:0)

对于多样性,这是另一种方式:

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]
相关问题