列表中相同值的索引
因为 list.index(x)
这个方法只会返回列表中第一个值为 x 的项的索引(位置)。有没有什么办法可以返回列表中所有相同值的索引呢?
比如,我有一个列表,里面有一些相同的值,像这样:
mylist = [(A,8), (A,3), (A,3), (A,3)]
我想要返回:
index_of_A_3 = [1, 2, 3]
4 个回答
1
这看起来有点丑,不过:
index_of_A_3 = [i for i in range(len(mylist)) if mylist[i] == (A,3)]
2
把 (A,3) 换成你想要的内容,或者使用一个 lambda 表达式。
[i for i in range(len(mylist)) if mylist[i]==(A,3)]
9
在编程中,有时候我们会遇到一些问题,比如代码运行不正常或者出现错误。这时候,我们可以去一些技术论坛,比如StackOverflow,去寻找解决方案或者向其他人提问。
在这些论坛上,很多人会分享他们的经验和解决方法,帮助你理解问题所在。你可以看到别人是怎么解决类似问题的,这样可以让你学到更多的知识。
如果你在提问时能把自己的问题描述清楚,并且提供一些相关的代码示例,其他人就能更容易地理解你的问题,给出有效的建议。
总之,利用这些技术社区可以帮助你更快地解决问题,提升你的编程技能。
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]