在遍历可变容器(如list)时更改python不可变类型
我想知道做以下事情并使其工作的最具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
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
的返回值。