在Python中从列表和固定变量创建字典

2024-10-01 11:22:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图从一个列表和一个固定变量创建一个字典。我知道zip()可以从两个列表中创建一个字典,但是我如何调整它以接受一个固定变量?在

工作原理:

countries = ["Italy", "Germany", "Spain", "USA", "Switzerland"]
dishes = ["pizza", "sauerkraut", "paella", "Hamburger"]
country_specialities = zip(countries,dishes)

我需要的是:

^{pr2}$

输出:

menu = ["pizza": "uk", "sauerkraut": "uk", "paella": "uk", "Hamburger", "uk"]

Tags: 列表字典zipcountries原理ukusaspain
3条回答

您可以这样做:

dishes = ["pizza", "sauerkraut", "paella", "Hamburger"]
country = "uk"
menu = dict((dish, country) for dish in dishes)
{dish: country for dish in dishes}

您可以在此处使用^{} class method

dict.fromkeys(dishes, country)

注意,如果默认值是可变值,则应该使用该值(除非您打算在所有键之间共享该可变值)。在

根据文件:

Create a new dictionary with keys from seq and values set to value.

fromkeys() is a class method that returns a new dictionary. value defaults to None.

这将比使用字典理解更快;对dishes的循环完全是用C代码完成的,而dict理解将用Python字节码执行循环。在

如果您的列表将包含20.000个值,则会产生巨大的差异:

^{pr2}$

当重复操作100次时,这几乎是两个选项之间的差一秒。在

相关问题 更多 >