我有两个列表列表,我想创建一个新的列表列表,其中包含每个列表平均值(平均每个点的值)。例如:如果我有以下列表:
file1 = [[1, -1], [2, -2], [3, -3], [4, -4]]
file2 = [[20, -40], [2, 0], [-50, 7], [30150, -200]]
平均列表结果将是:(使用 int 来舍入)
avg = [[10, -20], [2, -1], [-23, 2], [15077, -102]]
一旦我这样做了,如果列表的长度不同,我必须按原样添加长列表的组件。例如:
file1 = [[1, -1], [2, -2], [3, -3], [4, -4],[100, 100]
file2 = [[20, -40], [2, 0], [-50, 7], [30150, -200]]
结果将是:
[[10, -20], [2, -1], [-23, 2], [15077, -102],[100, 100]]
我正在考虑使用嵌套循环,但似乎操作太多了。(因为这些列表只是示例,而我使用的是一个很长的列表。)谢谢您的帮助!
我们可以使用zip()
合并我们的文件,然后将我们的元组值的平均值附加到avg
.
file1 = [[1, -1], [2, -2], [3, -3], [4, -4],[100, 100]]
file2 = [[20, -40], [2, 0], [-50, 7], [30150, -200]]
avg = []
for x1, x2 in zip(file1, file2):
avg.append([(x1[0] + x2[0])//2, (x1[1] + x2[1])//2])
if len(avg) < len(file1):
avg.extend(file1[len(avg):])
elif len(avg) < len(file2):
avg.extend(file2[len(avg):])
print(avg) # -> [[10, -21], [2, -1], [-24, 2], [15077, -102], [100, 100]]
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句