用切片 [:] 复制一个列表,并尝试用lower() 将新列表中的所有元素转换为小写

编程语言 2026-07-12

我以为这应该可行。目标是先使用 [:] 复制列表,然后把列表中的所有项转换为小写。可能有很多方法可以做到这一点,但有没有办法让我尝试的做法也能工作?

list = ['CAR', 'TRUCK']
copied_list = list[:]
for value in copied_list:
    value = value.lower()
print(copied_list)

我期望在输出中看到新复制的列表以小写形式打印。然而,大小写没有变化:

Actual result: ['CAR', 'TRUCK']

解决方案

第一点:你在 value = value.upper() 中忘记了 ()
第二点:你需要 lower(),而不是 upper()
第三点:存在函数 list(),所以不要使用变量 list,因为你将无法访问到函数 list()


它会把本地变量 value 的文本改成小写,但列表上的文本不会改变。

如果你想在现有列表中进行替换,可能需要使用索引

copied_list[index] = copied_list[index].lower()

比如

old_list = ['CAR', 'TRUCK']

copied_list = old_list[:]

for index in range(len(copied_list)):
    copied_list[index] = copied_list[index].lower()

print(copied_list)

不过更常见的是先创建一个空列表,然后 .append() 新值

old_list = ['CAR', 'TRUCK']

copied_list = []  # empty list

for value in old_list:
    copied_list.append( value.lower() )

print(copied_list)

或者甚至作为列表推导

old_list = ['CAR', 'TRUCK']

copied_list = [value.lower() for value in old_list]

print(copied_list)

你也可以使用 map() 搭配 str.lower(如果你想一次看到结果,最终也可以使用 list()——前提是你不打算为此使用 for-循环)

old_list = ['CAR', 'TRUCK']

copied_list = list(map(str.lower, old_list))

print(copied_list)
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。

相关文章