使用Python中的先前数据将数据附加到列表中

时间:2013-11-19 08:31:55

标签: python list dictionary data-structures

需要在Python中创建一个列表。这有点复杂。该列表将包含根据先前值附加的项目。例如,假设我的列表包含

x : 11 (key, value pair)
y : 5
z : 6

如果我想要添加另一个值为“4”的“x”项,它将检测“x”的前一个值“11”,它将被记录为“x:15”作为与前一个的总和。我以为我可能会使用链接列表,但我无法弄明白。你可以为我提供其他方法,数据结构或代码吗?

2 个答案:

答案 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)