我有一个数字列表,例如:
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比这些结构化循环更好。
我可以用另一种方式吗?
答案 0 :(得分:6)
一种非常pythonic的方法是使用list comprehension和conditional expression:
>>> a = [2,4,5,12]
>>> a = [x-10 if x > 10 else x for x in a]
>>> a
[2, 4, 5, 2]
>>>