将列表的列表合并为字典的简洁方法是什么?

3

我有两个列表:

ind_vars_unique_list = [['R1'], ['Samoan', 'English'], ['Rural', 'Urban']]
ind_vars = ['Round', 'PrefLang', 'Rural']

我想创建一个类似于此的字典:

{'R1': 'Round', 'Samoan':'PrefLang', 'English':'PrefLang', 'Rural':'Rural', 'Urban':'Rural'}

我可以使用字典推导式的方法得到一个解决方案:

{ind_vars_unique_list[i][j]:ind_vars[i] for i in range(len(ind_vars)) for j in range(len(ind_vars_unique_list[i]))}

但我在想是否有更简洁或更符合Python风格的方法来完成这个任务,可能可以用字典和zip函数吗?

1个回答

3

正确,zip是正确的方法:

>>> {x: v for k, v in zip(ind_vars_unique_list, ind_vars) for x in k}
{'R1': 'Round', 'Samoan': 'PrefLang', 'English': 'PrefLang', 'Rural': 'Rural', 'Urban': 'Rural'}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接