在python中检查条件后从列表中替换元素:"pythonic way"



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

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

但这并不是一种"蟒蛇式"的编码方式。如果我使用Fortran的话,我可以使用这个循环,但Python比这些结构化循环更好。

我可以用另一种方法吗?

一种非常Python的方法是将列表理解与条件表达式一起使用:

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

最新更新