我有2个清单。一个看起来像
['jim', 'bob', 'mike', 'kim', 'Alex']
,另一个看起来像
['YES', 'YES', 'YES', 'YES', 'YES', 'YES', 'YES', 'YES', 'YES', 'YES', 'YES', 'YES', 'YES', 'YES', 'YES', 'YES', 'YES', 'YES', 'NO', 'NO', 'NO', 'NO', 'NO', 'NO', 'NO', 'NO', 'YES', 'NO', 'YES', 'NO']
列表1中的每个名称对应于列表2中的前6个项目。因此,jim ='YES','YES','YES','YES','YES','YES'和Alex ='NO' ,'不','是','不','是','不'。有没有办法将这两个列表合并成一个字典?
我打算写一个像
这样的函数def people():
List1[0]=List2[0:6]
但那会改变List1。我试过了
dict(List1[0]: List2[0:6])
但收到错误
答案 0 :(得分:8)
你可以使用词典理解:
{x: l2[6*i:6*(i+1)] for i,x in enumerate(l1)}
如果你想要一个可怕的itertools版本,有人必须迟早发布,它看起来像dict(zip(l1, itertools.izip_longest(*[iter(l2)]*6)))
... blergh。
答案 1 :(得分:0)
请尝试使用d = {List1[0] : List2[0:6]}
。您尝试使用dict
语法调用:
构造函数,但需要使用{}
来执行此操作。