我有一个列表p
和一个字典q
,如下所示。
p = ['a', 'b', 'c', 'd']
q = [{'a':1, 'b':2}, {'b':3, 'c':4},{'c':5,'a':6},
{'d':7,'a':8}]
p
和q
的长度始终相同。
我想要一个类似于以下内容的列表输出。
a = [1,2,0,0]
b = [0,3,4,0]
c = [6,0,5,0]
d = [8,0,0,7]
我尝试了以下
a = []
b = []
c = []
d = []
for i in range(len(p)):
if p[i] == q[i].keys():
a.append(q[i].values())
else:
a.append(0)
等等,对于所有空列表,依此类推,但似乎没有将值附加到列表中。
答案 0 :(得分:6)
您可以使用打开包装:
p = ['a', 'b', 'c', 'd']
q = [{'a':1, 'b':2}, {'b':3, 'c':4},{'c':5,'a':6}, {'d':7,'a':8}]
a, b, c, d = [[i.get(c, 0) for c in p] for i in q]
输出:
[1, 2, 0, 0]
[0, 3, 4, 0]
[6, 0, 5, 0]
[8, 0, 0, 7]