需要在Python中创建一个列表。这有点复杂。该列表将包含根据先前值附加的项目。例如,假设我的列表包含
x : 11 (key, value pair)
y : 5
z : 6
如果我想要添加另一个值为“4”的“x”项,它将检测“x”的前一个值“11”,它将被记录为“x:15”作为与前一个的总和。我以为我可能会使用链接列表,但我无法弄明白。你可以为我提供其他方法,数据结构或代码吗?
答案 0 :(得分:2)
使用defaultdict
并调用函数:
from collections import defaultdict
def add_item(d, key, value):
d[key] += value
d = defaultdict(int)
add_item(d, 'x', 11)
add_item(d, 'x', 4)
print d
>>>
defaultdict(<type 'int'>, {'x': 15})
答案 1 :(得分:1)
L = [{'x':11}, {'y':2}, {'z':3}]
def addItem(L, key, value):
for index, element in enumerate(L):
if key in element:
L.remove(element)
L.insert(index, {key, element[key] + value})
return L
L[:] = addItem(L, 'x', 4)
print(L)