gpt4 book ai didi

python - 在 Python 中查找列表中元素的索引

转载 作者:太空宇宙 更新时间:2023-11-04 07:41:28 24 4
gpt4 key购买 nike

我有一个包含元素的列表,其中一些元素可以重复。例如,a = [1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4]。我想找到所有这些元素的索引。输出应如下所示: 对于元素 1,索引为 [1, 5, 9]。对于元素 2,索引为 [2, 6, 10] 等...

有人可以告诉我该怎么做吗?请注意,代码应尽可能通用。

最佳答案

这是一个非常通用的方法:

>>> lst = [1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4]
>>> dct = {x:[] for x in lst}
>>> for x,y in enumerate(lst, 1):
... dct[y].append(x)
...
>>> dct
{1: [1, 5, 9], 2: [2, 6, 10], 3: [3, 7, 11], 4: [4, 8, 12]}
>>>

但是请注意,Python 索引从 0 开始,因此 1 的列表应该[0, 4, 8],2 的列表[1 , 5, 9] 等。但是,由于您希望索引为 +1,因此我将 enumerate 设置为从 1 开始。


上述解决方案使用纯 Python,没有任何导入。但是,如果您导入 collections.defaultdict,则可以提高性能:

>>> from collections import defaultdict
>>> dct = defaultdict(list)
>>> for x,y in enumerate(lst, 1):
... dct[y].append(x)
...
>>> dct
{1: [1, 5, 9], 2: [2, 6, 10], 3: [3, 7, 11], 4: [4, 8, 12]}
>>>

关于python - 在 Python 中查找列表中元素的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19543704/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com