python - 使用列表理解修改列表
问题描述
我想使用列表理解修改列表。像这样的东西:
c = [10,20,30,40,50,60,70,80,90]
a = [0,1,2]
b = [3,4,5]
c[a[jj]] = [c[a[jj]]+c[b[jj]] for jj in range(len(a))]
我的预期输出:
c = [50,70,90,40,50,60,70,80,90]
但是每次出现错误时:
c[a[jj]] = [c[a[jj]]+c[b[jj]] for jj in range(len(a))]
NameError: name 'jj' is not defined
我在这里做错了什么?
编辑:我试图在不使用 for 循环的情况下复制下面的语句:
for jj in range(len(a)):
c[a[jj]] = c[a[jj]] + c[b[jj]]
解决方案
jj
未在左侧定义。即使是这样,作业也不会做你想做的事。你想要一个常规for
循环:
for jj in range(len(a)):
c[a[jj]] = c[a[jj]] + c[b[jj]]
但是,您可以使用enumerate
和 add-assign ( +=
) 使其更清洁:
for jj, x in enumerate(a):
c[x] += c[b[jj]]
或者更好的是使用zip
:
for x, y in zip(a, b):
c[x] += c[y]
推荐阅读
- python - 从自定义索引 setup.py 安装
- sql-server - 如何优化我的存储过程,使其运行得更快
- php - CodeIgniter 用空格替换“+”
- php - Array($row['image']) 在 $pdf->image 中不可用
- asp.net - 异常“当前上下文中不存在名称‘BindItem’”
- java - @RequestMapping 如何在 Spring Boot 应用程序中工作
- sql - 从表中删除行,保留最近的行
- node.js - 如何将 Shopify 价格规则 ID 传递给 Shopify 折扣创建
- javascript - 在 Yii2 中通过 JavaScript 更改值
- javascript - 为什么参数'props'隐式具有'any'类型?