gpt4 book ai didi

python - 索引数组

转载 作者:太空宇宙 更新时间:2023-11-03 13:03:19 26 4
gpt4 key购买 nike

我发现自己经常用 Python 中的平面列表制作索引列表。这是一项如此常见的任务,我想知道是否有一个标准实用程序可供我使用。

上下文是这样的:给定一个数组,我需要使用一些用于分组的键来创建一个较小数组的字典。

例如:
["Andy","Alice","Bob","Beth","Charlie"] 变成
{"A":["Andy","Alice"],"B":["Bob","Beth"],"C":["Charlie"]}

我的解决方案是这样的:

def make_index(data,key,value=lambda x:x):
d={}
for item in data:
k = key(item)
v = value(item)
try: d[k].append(v)
except KeyError: d[k]=[v]
return d

这很简单,但我是在重新发明在其他地方实现得更好的东西吗?

最佳答案

您可以使用 defaultdict 来更简单地完成同样的操作:

from collections import defaultdict

def make_index(data,key,value=lambda x:x):
d=defaultdict(list)
for item in data:
d[key(item)].append(value(item))
return d

使用 defaultdict 比使用 .setdefault() 更快,后者是另一种选择。

关于python - 索引数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12646690/

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