首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Capitalize()在python中的for循环中不起作用

Capitalize()在python中的for循环中不起作用
EN

Stack Overflow用户
提问于 2021-02-20 00:44:25
回答 2查看 156关注 0票数 0

我尝试将list中的单词大写()。

为什么这是可行的?

代码语言:javascript
复制
capitalized_words = [w.capitalize() for w in words]

但这不是

代码语言:javascript
复制
for w in words:
    w = w.capitalize()
EN

回答 2

Stack Overflow用户

发布于 2021-02-20 00:47:14

这是因为

代码语言:javascript
复制
capitalized_words = [w.capitalize() for w in words]

创建一个全新的列表,而

代码语言:javascript
复制
for w in words:
    w = w.capitalize()

更改列表,但实际上不会更改 words 列表

如果您希望使用for循环实际更改words,那么可以遍历索引。

代码语言:javascript
复制
for i in range(len(words)):
    words[i] = words[i].capitalize()

这将成功地改变列表。

SIDENOTE:如果要从列表中删除元素,不要在遍历列表时这样做。只有当列表的长度保持不变时,此方法才有效。

票数 2
EN

Stack Overflow用户

发布于 2021-02-20 00:48:08

在第二种情况下为w赋值并不会更改列表中的值,而是w是一个单独的变量,不会影响列表中的值。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66281636

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档