如何在python中的列表列表中创建字典?

Mar*_*isa 0 python dictionary list

我们假设我有以下列表列表

list1 = [['a','b'],['a'],['b','c'],['c','d'],['b'], ['a','d']]
Run Code Online (Sandbox Code Playgroud)

我想知道是否有一种方法来转换list1字典中的所有新字典将使用相同的键的每个元素.例如:如果['a'] 成为{'a':1},并且['b']成为{'b':2},我希望所有键a的值1和所有键b的值的值2.因此,在创建字典时['a','b'],我想变成{'a':1, 'b':2}.

到目前为止我发现的是从列表列表中创建字典的方法,但是使用第一个元素作为键,列表的其余部分作为值:

请注意,这不是我感兴趣的.我想要获得的结果list1是:

dict_list1 = [{'a':1,'b':2}, {'a':1}, {'b':2,'c':3}, {'c':3,'d':4}, {'b':2}, {'a':1,'d':4}]
Run Code Online (Sandbox Code Playgroud)

我对那些数字的项目并不感兴趣,但是对于每个不同的键,数字是相同的.

Sie*_*yer 9

您需要先声明映射:

mapping = dict(a=1, b=2, c=3, d=4)
Run Code Online (Sandbox Code Playgroud)

然后,你可以使用dict理解:

[{e: mapping[e] for e in li} for li in list1]
# [{'a': 1, 'b': 2}, {'a': 1}, {'b': 2, 'c': 3}, {'c': 3, 'd': 4}, {'b': 2}, {'a': 1, 'd': 4}]
Run Code Online (Sandbox Code Playgroud)