我尝试将list中的单词大写()。
为什么这是可行的?
capitalized_words = [w.capitalize() for w in words]但这不是
for w in words:
w = w.capitalize()发布于 2021-02-20 00:47:14
这是因为
capitalized_words = [w.capitalize() for w in words]创建一个全新的列表,而
for w in words:
w = w.capitalize()更改列表,但实际上不会更改 words 列表。
如果您希望使用for循环实际更改words,那么可以遍历索引。
for i in range(len(words)):
words[i] = words[i].capitalize()这将成功地改变列表。
SIDENOTE:如果要从列表中删除元素,不要在遍历列表时这样做。只有当列表的长度保持不变时,此方法才有效。
发布于 2021-02-20 00:48:08
在第二种情况下为w赋值并不会更改列表中的值,而是w是一个单独的变量,不会影响列表中的值。
https://stackoverflow.com/questions/66281636
复制相似问题