我正在尝试使用相同长度的另一个列表a
更新字典列表b
,每个字典应添加一个与b
中的值相对应的键位置,
for x in range(len(a)):
a[x]['val'] = b[x]
我想知道是否有更有效/简洁的方法来做到这一点
答案 0 :(得分:3)
可以尝试使用zip()
:
for ai, bi in zip(a, b):
ai["val"] = bi
答案 1 :(得分:0)
如果您使用的是python 3.x,则可以使用列表推导来动态创建新列表:
a = [{'A': 1}, {'B': 2}]
b = [3,4]
[{**d, **{"val":b[i]}} for i, d in enumerate(a)]
输出:
[{'A': 1, 'val': 3}, {'B': 2, 'val': 4}]
但请注意,这不适用于python 2.7。另一种选择是使用列表理解来更新每个字典:
>>> a = [{'A': 1}, {'B': 2}]
>>> b = [3, 4]
>>> [x.update({"val":b[i]}) for i,x in enumerate(a)]
[None, None]
>>> a
[{'A': 1, 'val': 3}, {'B': 2, 'val': 4}]
答案 2 :(得分:0)
export default class Clients {
static userEnum = {
SMALL: 1,
MEDIUM: 2,
LARGE: 3,
properties: {
1: { name: "Admin", value: 1 },
2: { name: "Manager", value: 2 },
3: { name: "Standard", value: 3 }
}
};
static clientName(value) {
return Clients.userEnum.properties[value].name;
}
}