如何从一个列表和另一个字典创建python字典
我有一个列表如何从一个列表和另一个字典创建python字典,python,Python,我有一个列表mylist和一本字典dict,我想根据mylist和dict制作另一本字典。既然我需要跟踪两个索引,那么我如何通过字典理解做到这一点呢?一个用于字典的键,一个用于列表的范围?我尝试了以下方法: new = {F(dict[k]):mylist[i] for k in dict, for i in range(len(mylist))} 但它不起作用。您可能会通过以下方式逃脱: new = {F(dict[dict.keys()[i]]):ll[i] for i in range(
mylist
和一本字典dict
,我想根据mylist
和dict
制作另一本字典。既然我需要跟踪两个索引,那么我如何通过字典理解做到这一点呢?一个用于字典的键,一个用于列表的范围?我尝试了以下方法:
new = {F(dict[k]):mylist[i] for k in dict, for i in range(len(mylist))}
但它不起作用。您可能会通过以下方式逃脱:
new = {F(dict[dict.keys()[i]]):ll[i] for i in range(len(ll))}
使用zip()
:
但是,您确实不应该使用
dict
作为变量名,因为它与内置类型冲突<代码>列表出于同样的原因也不是一个好名字。此外,它告诉你里面的东西是什么?列表和字典都应该使用描述性名称。有些相切,但像l1
或ll
这样的东西只会产生糟糕的标识符。为什么因为编写l1
而不是ll
,所以很难追踪bug?@zondo感谢您的澄清。这在Python3中不起作用,因为.keys()
返回一个dict_keys
对象,而不是列表。很好,在Python3中,您必须将dict.keys()转换为列表。。。我同意zondo关于dict作为变量名的观点,这是自找麻烦。。。
new = {F(dict[key]): item for key, item in zip(dict, ll)}