在遍历可变容器(如list)时更改python不可变类型

在遍历可变容器(如list)时更改python不可变类型,python,types,iteration,immutability,Python,Types,Iteration,Immutability,我想知道做以下事情并使其工作的最具Python风格的方式是什么: strings = ['a','b'] for s in strings: s = s+'c' 显然,这在python中不起作用,但我想得到的结果是 字符串=['ac','bc'] 达到这种效果最理想的方法是什么 谢谢你的回答 您可以使用列表理解创建具有以下值的列表:[s+'c'表示字符串中的s]。您可以按如下方式就地修改列表: for i, s in enumerate(strings): strings

我想知道做以下事情并使其工作的最具Python风格的方式是什么:

strings = ['a','b']

for s in strings:  
    s = s+'c'
显然,这在python中不起作用,但我想得到的结果是
字符串=['ac','bc']
达到这种效果最理想的方法是什么


谢谢你的回答

您可以使用列表理解创建具有以下值的列表:
[s+'c'表示字符串中的s]
。您可以按如下方式就地修改列表:

for i, s in enumerate(strings):
    strings[i] = s + 'c'

但我发现,很多时候,不需要就地修改。查看您的代码,看看这是否适用。

您可以使用map函数来实现这一点

strings = ['a', 'b']
strings = [s + 'c' for s in strings]
strings = ['a', 'b']
strings = map(lambda s: s + 'c', strings)

strings[:]=…
要更改现有列表,请确保获取
map
的返回值。