加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

Python将修改后的列表转换为for循环

发布时间:2020-12-20 11:06:09 所属栏目:Python 来源:网络整理
导读:我一直致力于制作元组列表并找到每个元组的平均值. 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[
我一直致力于制作元组列表并找到每个元组的平均值.

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,6)]

我应该得到每个元组的平均值并替换三个元组

输出:[(2.0,2.0,2.0),(7.33,7.33,7.33)]

解决方法

您可以使用列表理解.下面的示例避免了通过map和zip迭代器计算每个元组的长度两次.

myList = [(1,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,(7.333333333333333,7.333333333333333,7.333333333333333)]

如果您希望舍入小数,可以使用:

res = [(round(sum(i)/i_len,2),lens)]

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读