在python中检查条件后替换列表中的元素:执行“pythonic方式”

时间:2013-12-08 22:51:48

标签: python list loops replace

我有一个数字列表,例如:

a = [2,4,5,12]

我想通过从任何大于10的元素中减去10来更改列表。

我可以做到以下几点:

i = 0
for ax in a:
    if ax>10:
       ax = ax-10
       a[i] = ax
    i = i+1

但这不是一种“pythonic”编码方式。如果我使用的是Fortran,那么我可以使用这个循环,但Python比这些结构化循环更好。

我可以用另一种方式吗?

1 个答案:

答案 0 :(得分:6)

一种非常pythonic的方法是使用list comprehensionconditional expression

>>> a = [2,4,5,12]
>>> a = [x-10 if x > 10 else x for x in a]
>>> a
[2, 4, 5, 2]
>>>