l_future_ 2022-12-22 21:13 采纳率: 50%
浏览 15
已结题

请问如何按位置将列表中指定元素进行数量扩充?

有列表a=[1,2,3,5,3,6,7,1],列表b=[0,2,4],列表c=[x,y,z],b中的元素代表对应于a中元素的位置(即0表示a中位置为0的元素),c中的元素代表a中位置为0,2,4的元素的权重。
请问大家,使用Python怎么将a中位置为0,2,4的元素进行数量扩充?
假如扩充的条件为:该元素需要扩充的数量=该元素在a中原本的数量+该元素的权重*10
麻烦大家帮忙解答一下,有点复杂,谢谢各位了!

  • 写回答

1条回答 默认 最新

  • ShowMeAI 2022-12-22 21:35
    关注

    望采纳

    可以使用 Python 中的列表推导式,如下代码所示:

    a = [1, 2, 3, 5, 3, 6, 7, 1]
    b = [0, 2, 4]
    c = [x, y, z]
    
    result = [a[i] * (a[i] + 10 * c[j]) for i in range(len(a)) for j in range(len(b)) if i == b[j]]
    print(result)
    

    它等同于下列循环实现

    a = [1, 2, 3, 5, 3, 6, 7, 1]
    b = [0, 2, 4]
    c = [x, y, z]
    
    result = []
    for i in range(len(a)):
        for j in range(len(b)):
            if i == b[j]:
                result.append(a[i] * (a[i] + 10 * c[j]))
    print(result)
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 1月7日
  • 已采纳回答 12月30日
  • 创建了问题 12月22日

悬赏问题

  • ¥20 Keil uVision5创建project没反应
  • ¥15 mmseqs内存报错
  • ¥15 vika文档如何与obsidian同步
  • ¥15 华为手机相册里面的照片能够替换成自己想要的照片吗?
  • ¥15 陆空双模式无人机飞控设置
  • ¥15 sentaurus lithography
  • ¥100 求抖音ck号 或者提ck教程
  • ¥15 关于#linux#的问题:子进程1等待子进程A、B退出后退出(语言-c语言)
  • ¥20 web页面如何打开Outlook 365的全球离线通讯簿功能
  • ¥15 io.jsonwebtoken.security.Keys