将列表附加到字典

时间:2016-03-19 10:39:27

标签: python django list python-2.7 dictionary

我有一个像

这样的字典列表
b = {'z': 200, 'y': 100, 'x': 50} 

和第二个字典,如

a = [{name: 'x', 'hour':35, 'unit': 500, 'b': 50},
     {name: 'y', 'hour': 40, 'unit': 600, 'b': 100},
     {name: 'z', 'hour': 50, 'unit': 700, 'b': 200},
     {name: 'z', 'hour': 20, 'unit': 400, 'b': 200},
     {name: 'x', 'hour': 40, 'unit': 500, 'b': 50}]

有什么方法可以将第二个字典分配到第一个字典,这样我就可以产生像

这样的结果
[50, 100, 200, 200, 50]

或至少像

这样的列表
#one {
  background-color: #ddd;
  color: black;
  border-radius: 2px;
  position: relative;
  padding: 2px;
  width:200px;
  height:80px;
  padding-right: 15px;   /* make up for the triangle so inner content does not overlap */
}
#one:after {
  content: ' ';
  position: absolute;
  top: 0;
  right: 0;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 0 10px 15px 10px;
  border-color: transparent transparent #f00 transparent;
}

2 个答案:

答案 0 :(得分:4)

您可以使用以下方法:

>>> for sub in a:
...    sub['b'] = b.get(sub['name'], None)
... 
>>> a
[{'unit': 500, 'b': 50, 'name': 'x', 'hour': 35},
 {'unit': 600, 'b': 100, 'name': 'y', 'hour': 40},
 {'unit': 700, 'b': 200, 'name': 'z', 'hour': 50},
 {'unit': 400, 'b': 200, 'name': 'z', 'hour': 20},
 {'unit': 500, 'b': 50, 'name': 'x', 'hour': 40}]
>>>

答案 1 :(得分:0)

@Kasramvd回答了你的第一部分。如果你想要第二部分,

>>> [b[i['name']] for i in a]
[50, 100, 200, 200, 50]