如何在python的列表中返回与输入数字相同的数字位置?

时间:2014-09-12 08:49:15

标签: python list position

我有一个列表,例如:

[1,2,3,2,1,5,6] 

我想在列表中找到1的所有位置。我试过if语句,但我只获得前1位,而不是所有1位。

如果我使用if语句看起来像[0],那么实际输出,但预期结果应为[0,4]

3 个答案:

答案 0 :(得分:6)

您可以使用list comprehension迭代enumerate(your_list)并使用if语句作为其中的一部分来捕获所需的值,如下所示:

data = [1,2,3,2,1,5,6] # Your list
num = 1 # The value you want to find indices for

pos = [i for i, v in enumerate(data) if v == num]
print(pos)
# [0, 4]

答案 1 :(得分:0)

尝试使用枚举: - >这会给列表中的indexvalue提供一个元组

 lndexs=[]
 for index,value in enumerate([1,2,3,2,1,5,6]):
        if value==1:
            lndexs.append( index)

答案 2 :(得分:0)

lstOfNumbers = [1,2,3,2,1,5,6]
searchFor = 1
lstOfIndexs = [index for index in range(len(lstOfNumbers)) if lstOfNumber[index]==searchFor]

或者你可以使用python函数过滤器

lstOfNumbers = [1,2,3,2,1,5,6]
searchFor = 1    
lstOfIndexs = filter(lambda x: lstOfNumbers[x]==searchFor, range(len(lstOfNumbers)))