首页 > 解决方案 > 如何在直接索引列表时使用for循环和upper()将列表中的所有元素转换为大写?

问题描述

我是 python 新手,所以这可能非常简单。

我正在尝试遍历列表并将每个元素转换为大写。我知道这有效:

word_list = ['alt', 'mach', 'time']
for i in range(0, len(word_list)):
    word_list[i] = word_list[i].upper()

但我也知道您可以直接索引列表(不使用范围),但我不确定如何将其应用于这种情况。我试过这个:

word_list = ['alt', 'mach', 'time']
for i in word_list:
    i = i.upper()

但是当我之后打印列表时,它并没有改变。我怀疑这是因为无论如何我都在更改每个循环,我不能将它分配给我正在尝试做的事情。在直接索引列表时是否有其他方法可以做到这一点?

标签: pythonpython-3.x

解决方案


并不真地。正如我认为你意识到的那样,i = i.upper()只是重新分配i给一个新字符串,并不会改变列表中的内容。

您可以做的最好的事情是使用enumerate为您提供元素和索引:

for i, word in enumerate(word_list):
    word_list[i] = word.upper()

推荐阅读