在python中组合两个不均匀的列表

Joe*_*Joe 0 python dictionary list

我有2个清单.一个看起来像

['jim', 'bob', 'mike', 'kim', 'Alex']
Run Code Online (Sandbox Code Playgroud)

而另一个看起来像

['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']
Run Code Online (Sandbox Code Playgroud)

列表1中的每个名称对应于列表2中的前6个项目.因此,jim ='YES','YES','YES','YES','YES','YES'和Alex ='NO','NO ','是','不','是','不'.有没有办法将这两个列表合并成一个字典?

我打算写一个像这样的函数

def people():
    List1[0]=List2[0:6]
Run Code Online (Sandbox Code Playgroud)

但那会改变List1.我试过了

dict(List1[0]: List2[0:6]) 
Run Code Online (Sandbox Code Playgroud)

但得到一个错误

wim*_*wim 8

你可以使用dict理解:

{x: l2[6*i:6*(i+1)] for i,x in enumerate(l1)}

如果你想要一个可怕的itertools版本,有人必须迟早发布,它看起来像dict(zip(l1, itertools.izip_longest(*[iter(l2)]*6))) ...... blergh.