Skip to main content
 首页 » 编程设计

python3从列表列表中总结元素

2025年05月04日14pander-it

我有一个列表列表

lst = [[0,1],[1,1],[3,1],[1,2],[1,3],[3,5]] 

我想总结子列表的第二项以获取相同的第一项。结果应该是这样的

lst = [[0,1],[1,6],[3,6]] 

我试过这样的:

lst=[[0, 0.25], [1, 0.125], [2, 0.0625], [3, 0.0625], [1, 0.125], [2, 0.0625], [3, 0.03125], [4, 0.03125]] 
for listitem in range(len(lst)): 
    first=listitem[0] 
    second = 0 
    for obj in lst: 
        if obj[0] == first: 
            second += obj[1] 
            lst.remove(obj) 
    listitem[1] = second 

请您参考如下方法:

使用默认字典

    from collections import defaultdict 
 
    lst=[[0, 0.25], [1, 0.125], [2, 0.0625], [3, 0.0625], [1, 0.125], [2, 0.0625], [3, 0.03125], [4, 0.03125]] 
 
    res = defaultdict(int)     
    for el in lst: 
        res[el[0]] += el[1]  
    res_list = [[k,v] for (k,v) in res.items()] 
 
    print(res_list) 
 
[[0, 0.25], [1, 0.25], [2, 0.125], [3, 0.09375], [4, 0.03125]]