python - 如何合并嵌套列表元素

标签 python algorithm

我已经编写了一个 Python 脚本来解析大量数据并按照以下示例对其进行清理:

input_list = [[a,b,c,0.5], [a,b,d,1], [a,b,e,1], [a,b,c,0.3], [a,b,c,0.2], [a,b,f,0.6], [a,b,f,0.4], [a,b,g,1]]

output_list = [[a,b,c,1], [a,b,d,1], [a,b,e,1], [a,b,f,1], [a,b,g,1]]

所以基本上,如果每个列表的前 3 个元素相同,则只保留一个列表并将值(第 4 个元素)相加。

我使用了嵌套的“for”循环和许多“if”语句,但我想知道在 Python 中是否有更好的方法来执行此操作(最好是 v2)。

我在这里不是要代码,只是一些建议,以便我学习和改进我的代码。

干杯。

最佳答案

input_list = [['a','b','c',0.5], ['a','b','d',1], ['a','b','e',1], ['a','b','c',0.3], ['a','b','c',0.2], ['a','b','f',0.6], ['a','b','f',0.4], ['a','b','g',1]]
output_list = []

d = {}
for i in input_list:
    key = (i[0], i[1], i[2])
    d[key] = i[3] + (d[key] if key in d else float(0))

for k, v in d.iteritems():
    output_list.append([
        k[0], k[1], k[2], v
    ])

# print output_list

关于python - 如何合并嵌套列表元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56122291/

相关文章:

python - 我应该如何在 Django 中显示 BeautifulSoup 解析的结果?

java - 如何使用位操作实现 Karatsuba 乘法

python - Pyspark 错误 :- dataType <class 'pyspark.sql.types.StringType' > should be an instance of <class 'pyspark.sql.types.DataType' >

python - 在keras中计算微F-1分数

python - 脚本即使在异步运行时也执行得非常慢

Python继承结构和参数

algorithm - 坐标系中两点间的最短路径

javascript - 将一个数组与另一个数组进行比较,以确保第二个数组不包含不同的值

c# - 寻找图中节点对之间的 K 最短路径?

Ruby如何从给定数字生成随机数