由于list.index(x)
只会返回列表中第一个值为x的项目的索引。有没有办法返回列表中所有相同值的索引。
例如,我有一个包含一些相同值的列表:
mylist = [(A,8), (A,3), (A,3), (A,3)]
I want to return:
index_of_A_3 = [1, 2, 3]
mylist = [(A,8), (A,3), (A,3), (A,3)]
def indices( mylist, value):
return [i for i,x in enumerate(mylist) if x==value]
print indices(mylist, (A,3))
# [1, 2, 3]
将 (A,3) 替换为您想要的内容,或使用 lambda 表达式。
[i for i in range(len(mylist)) if mylist[i]==(A,3)]
这有点丑,但是:
index_of_A_3 = [i for i in range(len(mylist)) if mylist[i] == (A,3)]
更快!!!
index_of_A_3= np.where(mylist == (A,3))[0]
list(enumerate(["foo", "bar", "baz"])) == [(0,"foo"), (1, "bar"), (2, "baz")]
。 - Katriel