gpt4 book ai didi

python - 创建一个具有递增值的字典

转载 作者:太空狗 更新时间:2023-10-30 00:29:03 26 4
gpt4 key购买 nike

我有一个列表,我想生成一个字典 d取出重复项并排除单个项目,这样第一个键的值为 0,第二个键的值为 1,依此类推。

我写了下面的代码:

d = {}
i = 0
for l in a_list:
if (l not in d) and (l != '<'):
d[l] = i
i += 1

如果a_list = ['a', 'b', '<', 'c', 'b', 'd'] ,运行代码后 d包含 {'a': 0, 'b': 1, 'c': 2, 'd':3} .顺序并不重要。是否有更优雅的方法来获得相同的结果?

最佳答案

使用 dict.fromkeys 获取您的唯一出现(减去您不想要的值),然后 .update 应用序列,例如:

a_list = ['a', 'b', '<', 'c', 'b', 'd']

d = dict.fromkeys(el for el in a_list if el != '<')
d.update((k, i) for i, k in enumerate(d))

给你:

{'a': 0, 'b': 1, 'd': 2, 'c': 3}

如果顺序很重要,则使用 collections.OrderedDict.fromkeys 来保留原始值的顺序,或者如果它们应该按字母顺序排列,则对唯一值进行排序。

关于python - 创建一个具有递增值的字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45441907/

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