我有三个清单:
A = ['a','b','c']
B = [[1,2,3],[4,5,6]]
和
C = ['A','B']
我需要创建一个具有以下特征的字典:
{'A':{'a':1, 'b':2, 'c':3}, 'B':{'a':4, 'b':5, 'c':6}}
这是我的代码,但它失败了,因为第二个循环只显示了最新的交互。
我的代码:
{C[j]: {A[i]:B[j][i]} for j in range(len(C)) for i in range(len(A))}
输出: {'A': {'c': 3}, 'B': {'c': 6}}
知道如何制作所需的词典吗?
下面的命令给出了所需的结果:
{c: dict(zip(A, b)) for b in B for c in C}
不建议使用此语法
range(len(C))
在Python中循环迭代。
请参阅另一个问题的答案 https://stackoverflow.com/a/209854,了解构造函数
dict
如何与 zip
内置函数一起使用。
我想下面的内容会对你有所帮助。
{k : dict(zip(A, bs)) for k, bs in zip(C, B)}