python - 大写()在python中的for循环中不起作用
问题描述
我正在尝试将列表中的单词大写()。
为什么这行得通?
capitalized_words = [w.capitalize() for w in words]
但这并不
for w in words:
w = w.capitalize()
解决方案
这是因为
capitalized_words = [w.capitalize() for w in words]
创建一个全新的列表,而
for w in words:
w = w.capitalize()
mutates w
,但实际上并没有改变words
list。
如果您想words
使用 for 循环进行实际更改,请改为遍历索引。
for i in range(len(words)):
words[i] = words[i].capitalize()
这将成功地改变列表。
旁注:如果您要从列表中删除元素,请不要在迭代时这样做。此方法仅在您保持列表长度相同时才有效。
推荐阅读
- c++ - 递归地反转堆栈
- google-sheets - 根据起始年份创建动态年月标题 - Google Query
- javascript - 使用“调试器”时,如何在 chrome 开发工具控制台中获得承诺的结果?
- java - 使用 ObjectBox 查询当地时间
- ios - UITextfield isBecomeFirstResponder 在 UIView 的 @IBDesignable 中不起作用
- javascript - Javascript侧边栏切换添加动画(不带jQuery)
- matrix - 复矩阵将实矩阵乘以 BLAS
- bash - 字段名称作为参数
- python - Python - 在 tkinter 中显示输入的文本
- reactjs - 如何在 CKEdit 5 React 组件中管理粘贴事件?