0

我有 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' and Alex='NO', 'NO ','是','否','是','否'。有没有办法将这两个列表合并成一个 dict ?

我打算写一个像

def people():
    List1[0]=List2[0:6]

但这会使 List1 发生突变。我试过

dict(List1[0]: List2[0:6]) 

但得到一个错误

4

2 回答 2

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。

于 2013-02-11T05:18:06.847 回答
0

试试d = {List1[0] : List2[0:6]}吧。您正在尝试dict使用语法调用构造函数:,但需要使用{}来执行此操作。

于 2013-02-11T05:20:39.573 回答