gpt4 book ai didi

Python - 通过迭代创建字典

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

我有一个日期列表,想创建一个字典,将一天的前 3 个字母映射到全名。

我试过:

day=['Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sunday']
daydict = dict()
for d in day:
daydict.update({d[:3]:d})

这给出了理想的结果,但后来我偶然发现了看起来更干净的代码。

daydict = dict((d[:3],d)for d in day)

我不明白这个语法。请解释 dict((d[:3],d)for d in day) 是如何工作的?

最佳答案

更好的方法是通过使用dict comprehension expression as:

>>> day=['Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sunday']

>>> {d[:3]:d for d in day}
{'Wed': 'Wednesday', 'Sun': 'Sunday', 'Fri': 'Friday', 'Tue': 'Tuesday', 'Mon': 'Monday', 'Thu': 'Thursday', 'Sat': 'Saturday'}

在您的解决方案中,您正在创建元组的列表,然后将其类型转换为dict[(d[:3],d) for d in day] 返回的值(相当于 list comprehension expression to your generator表达式)将是:

[('Mon', 'Monday'), ('Tue', 'Tuesday'), ('Wed', 'Wednesday'), ('Thu', 'Thursday'), ('Fri', 'Friday'), ('Sat', 'Saturday'), ('Sun', 'Sunday')]

假设此值存储为 my_dict 变量。当您将其类型转换为 dict 时,您将获得所需的 dict 对象:

>>> dict(my_dict)
{'Wed': 'Wednesday', 'Sun': 'Sunday', 'Fri': 'Friday', 'Tue': 'Tuesday', 'Mon': 'Monday', 'Thu': 'Thursday', 'Sat': 'Saturday'}

关于Python - 通过迭代创建字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41622466/

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