替换列表中的特定元素

时间:2011-09-30 10:51:16

标签: python list

代码:

>>> mylist = ['abc','def','ghi']
>>> mylist
['abc', 'def', 'ghi']
>>> for i,v in enumerate(mylist):
...     if v=='abc':
...             mylist[i] = 'XXX'
... 
>>> mylist
['XXX', 'def', 'ghi']
>>> 

在这里,我尝试将所有'abc'替换为'XXX'。有没有更短的方法来做到这一点?

2 个答案:

答案 0 :(得分:14)

您可以使用list comprehension,而不是使用显式for循环。这允许您迭代列表中的所有元素并过滤它们或将它们映射到新值。

在这种情况下,您可以使用conditional expression。它与其他语言中的(v == 'abc') ? 'XXX' : v类似。

将它们放在一起,您可以使用以下代码:

mylist = ['XXX' if v == 'abc' else v for v in mylist]

答案 1 :(得分:11)

使用list comprehension进行三元操作/ conditional expression

['XXX' if item == 'abc' else item for item in mylist]