在Python中使用列表推导修改列表元素

16 投票
5 回答
28545 浏览
提问于 2025-04-17 08:31

大家好,

我想用列表推导式来修改列表中的元素。比如,如果某个元素是负数,就给它加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]

当然可以!请把你想要翻译的内容发给我,我会帮你用简单易懂的语言解释清楚。

撰写回答