列表中相同值的索引

3 投票
4 回答
16814 浏览
提问于 2025-04-16 08:07

因为 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]

撰写回答