将嵌套列表的元素平均值插入到同一lis中

2024-04-18 21:33:16 发布

您现在位置:Python中文网/ 问答频道 /正文

假设有一个浮动嵌套列表

L = [[a,b,c],[e,f,g],[h,i,j]]

我可以定义什么样的函数来遍历一次列表并将每个连续列表的元素的平均值插入到同一个列表中?也就是说,我想

L1 = [[a,b,c],[(a+e)/2,(b+f)/2,(c+g)/2],[e,f,g],[(e+h)/2,(f+i)/2,(g+j)/2],[h,i,j]]

我知道获取两个列表的元素平均值的函数:

from operator import add
new_list = list(map(add,list1,list2))
J = [j/2 for j in new_list]

然而,将这个平均值列表插入到同一个列表中,同时在旧列表中保持适当的索引迭代被证明是具有挑战性的。你知道吗


Tags: 函数fromimportadd元素l1map列表
1条回答
网友
1楼 · 发布于 2024-04-18 21:33:16

有两种情况:

  1. 不管结果列表是否相同:
new_list = []
for i in range(len(L)-1):
    new_list.append(L[i])
    new_list.append(list(map(lambda x: sum(x)/len(x), zip(L[i],L[i+1]))))
new_list.append(L[-1])
  1. 您希望在适当的位置执行更改:
i=0
while i < len(L)-1:
    new_elem = list(map(lambda x: sum(x)/len(x), zip(L[i],L[i+1])))
    L.insert(i+1, new_elem)
    i += 2

编辑:如果您使用的是python3.4或更高版本,那么可以使用lambda x: sum(x)/len(x)(来自包statistics)。你知道吗

相关问题 更多 >