删除列表中的元组,然后将平均值分配给已删除的元组

时间:2019-01-28 01:22:34

标签: python list tuples

这是列表:

trandom= [(4, 1), (3, 2), (1, 0), (2, 1)]

for indx, tup in enumerate(trandom):
print("original list", trandom)
#remove the tuple that computes the average
removedfromList= trandom.pop(indx)
#updatedList=(trandom, average[indx])
print(trandom+[average[indx]])
updatedList=trandom+[average[indx]]
print(list(chain(*(i if isinstance(i, tuple) else (i,) for i in updatedList))))
break

结果进入

 ('original list', [(4, 1), (3, 2), (1, 0), (2, 1)])
[(3, 2), (1, 0), (2, 1), 2.5]

到目前为止,这很好,因为我已经能够将平均值添加为元组的最后一个元素。

我现在的目标是在这种情况下为原始列表(1,0)中的第一个元组分配平均值(0.5),并将该元组展平到列表中,然后计算其平均值和标准偏差。我必须随机执行此过程。

1 个答案:

答案 0 :(得分:0)

关于您的要求有很多困惑。

修复语法错误后,代码将输出以下内容:

trandom= [(4, 1), (3, 2), (1, 0), (2, 1)]

#remove for loop because you are breaking out of it after 1 iteration
print(("original list", trandom)) #make the output a tuple
updatedList=(trandom+[np.average([i[0] for i in trandom])])
removedfromList= updatedList.pop(0) #remove the first from updated
print (updatedList)
#next line was not in your output
#print(list(it.chain(*(i if isinstance(i, tuple) else (i,) for i in updatedList))))

以下代码为您提供了您所描述的输出:

{{1}}

关于您的第二部分,我不确定您要寻找什么。 (1,0)当然不是原始列表中的第一个元素。请说明您要做什么。