在Python中使用列表推导修改列表元素
大家好,
我想用列表推导式来修改列表中的元素。比如,如果某个元素是负数,就给它加4。
这样,列表
a = [1, -2 , 2]
就会变成
a = [1, 2, 2]
下面的代码可以实现这个功能,但我在想有没有更好的方法呢?
谢谢。
for i in range(len(a)):
if a[i]<0:
a[i] += 4
5 个回答
3
这个版本比较旧,可以在 Python 2.4 上运行。
>>> [x < 0 and x + 4 or x for x in [1, -2, 2]]
0: [1, 2, 2]
如果你使用的是更新版本的 Python,可以参考 条件表达式,就像 Adam Wagner 或 BenH 的回答中提到的那样。
8
如果你想要直接在原来的列表上进行修改,这几乎是最好的方法。使用列表推导式会创建一个新的列表。你也可以使用 enumerate
,并且需要把值赋给 a[i]
:
for i, x in enumerate(a):
if x < 0:
a[i] = x + 4
25
a = [b + 4 if b < 0 else b for b in a]
当然可以!请把你想要翻译的内容发给我,我会帮你用简单易懂的语言解释清楚。