我一直致力于制作元组列表并找到每个元组的平均值.
myList = [(1,2,3),(4,12,6)]
def GS(myList):
for miniList in myList:
r = miniList[0]
g = miniList[1]
b = miniList[2]
GS = round((r+g+b)/3,2)
miniList = list(miniList)
miniList[0] = GS
miniList[1] = GS
miniList[2] = GS
miniList = tuple(miniList)
return myList
print(GS(myList))
我的清单是[(1,2,3),(4,12,6)]
我应该得到每个元组的平均值并替换三个元组
输出:[(2.0,2.0,2.0),(7.33,7.33,7.33)]
最佳答案 您可以使用列表理解.下面的示例避免了通过map和zip迭代器计算每个元组的长度两次.
myList = [(1,2,3),(4,12,6)]
def GS(L):
lens = map(len, L)
res = [(sum(i)/i_len,)*i_len for i, i_len in zip(L, lens)]
return res
print(GS(myList))
[(2.0, 2.0, 2.0), (7.333333333333333, 7.333333333333333, 7.333333333333333)]
如果您希望舍入小数,可以使用:
res = [(round(sum(i)/i_len, 2),)*i_len for i, i_len in zip(L, lens)]