我有一个列表,例如:
[1,2,3,2,1,5,6]
我想在列表中找到1的所有位置。我试过if语句,但我只获得前1位,而不是所有1位。
如果我使用if语句看起来像[0]
,那么实际输出,但预期结果应为[0,4]
。
答案 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)
尝试使用枚举: - >这会给列表中的index
和value
提供一个元组
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)))