在迭代可变容器(如列表)时更改不可变的 Python 类型
我在想,怎么用最“Python风格”的方式来做到以下这些事情,并且让它有效:
strings = ['a','b']
for s in strings:
s = s+'c'
显然,这在Python中是行不通的,但我想要达到的结果是
strings = ['ac','bc']
那么,最“Python风格”的方法是什么呢?
谢谢大家的精彩回答!
3 个回答
1
你可以用map函数来实现这个功能。
strings = ['a', 'b']
strings = map(lambda s: s + 'c', strings)
3
你可以用列表推导式来创建一个包含这些值的列表:[s + 'c' for s in strings]
。你可以像这样直接修改列表:
for i, s in enumerate(strings):
strings[i] = s + 'c'
不过我发现,很多时候其实不需要直接修改列表。你可以看看你的代码,看看这种情况是否适用。
6
在编程中,有时候我们会遇到一些问题,像是代码运行不正常或者出现错误。这些问题可能是因为我们没有正确理解某些概念,或者在写代码的时候犯了一些小错误。
比如,有些人可能会在使用某些功能时,忘记先进行必要的设置,或者在调用某个函数时,传入了错误的参数。这就像是你在做菜时,忘记先把锅加热,或者放错了调料,结果做出来的菜就不好吃。
所以,遇到问题的时候,首先要冷静下来,仔细检查自己的代码,看看是不是哪里出了错。可以参考一些文档或者教程,帮助自己更好地理解这些概念。
总之,编程就像是解决谜题,有时候需要耐心和细心,才能找到正确的答案。
strings = ['a', 'b']
strings = [s + 'c' for s in strings]