在迭代可变容器(例如列表)时更改 python 不可变类型

发布于 2024-10-03 21:18:04 字数 221 浏览 4 评论 0原文

我想知道执行以下操作并使其工作的最Pythonic方法是什么:

strings = ['a','b']

for s in strings:  
    s = s+'c'

显然这在Python中不起作用,但我想要实现的结果是
字符串 = ['ac','bc']
实现这种结果最Pythonic的方法是什么?

感谢您的精彩回答!

I am wondering what is the most pythonic way to do the following and have it work:

strings = ['a','b']

for s in strings:  
    s = s+'c'

obviously this doesn't work in python but the result that I want to acheive is
strings = ['ac','bc']
Whats the most pythonic way to achieve this kind of result?

Thanks for the great answers!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

淡看悲欢离合 2024-10-10 21:18:04
strings = ['a', 'b']
strings = [s + 'c' for s in strings]
strings = ['a', 'b']
strings = [s + 'c' for s in strings]
扭转时空 2024-10-10 21:18:04

您可以使用列表理解来创建具有以下值的列表:[s + 'c' for s in strings]。您可以像这样就地修改列表:

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

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

You can use list comprehension to create a list that has these values: [s + 'c' for s in strings]. You can modify the list in-place like this:

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

But I found that quite often, in-place modification is not needed. Look at your code to see if this applies.

甜心小果奶 2024-10-10 21:18:04

您可以使用地图功能。

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

You can use map function for that.

strings = ['a', 'b']
strings = map(lambda s: s + 'c', strings)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文