码:
>>> mylist = ['abc','def','ghi']
>>> mylist
['abc', 'def', 'ghi']
>>> for i,v in enumerate(mylist):
... if v=='abc':
... mylist[i] = 'XXX'
...
>>> mylist
['XXX', 'def', 'ghi']
>>>
Run Code Online (Sandbox Code Playgroud)
在这里,我尝试更换所有出现'abc'用'XXX'.有没有更短的方法来做到这一点?
Mar*_*ers 14
您可以使用列表推导,而不是使用显式的for循环.这允许您迭代列表中的所有元素并过滤它们或将它们映射到新值.
在这种情况下,您可以使用条件表达式.它与(v == 'abc') ? 'XXX' : v其他语言类似.
将它们放在一起,您可以使用以下代码:
mylist = ['XXX' if v == 'abc' else v for v in mylist]
Run Code Online (Sandbox Code Playgroud)
agf*_*agf 11
['XXX' if item == 'abc' else item for item in mylist]
Run Code Online (Sandbox Code Playgroud)