Python - 解构列表并使用 .lower() 使其小写

问题描述 投票:0回答:2

您好,我正在学习 Python,在一项作业中,我被要求解构一个列表并使用 .lower() 方法将其变为小写。我对如何使用 .lower 将列表中的项目更改为小写感到困惑,并且需要一些帮助。

这是我的代码,我得到了这个结构,并且必须填写缺失的区域:

代码

def destructure(lst):

解构列表

for i in lst:
  result.extend(i)
print(result)

将项目更改为小写

???

功能

lc=[['ONE','TWO','THREE'],['FOUR','FIVE','SIX']]
destructure(lc)

我尝试使用:

lower = [x.lower() for x in lst]
print(lower)

但这行不通。

python list lowercase deconstructor
2个回答
0
投票

你没有一个列表,你有一个列表的列表。因此,将 lower() 应用于 x 会应用于列表而不是字符串,并且不起作用,事实上解释器会抱怨 *AttributeError: 'list' object has no attribute 'lower'.
您必须迭代所有子列表并将运算符应用于每个字符串,如下所示:

low = []
for i in range(len(lst)):
    low.append([])
    for j in range(len(lst[0])):
        low[i].append(lst[i][j].lower())

0
投票

请记住,字符串是不可变的。因此,当您调用 str.lower() 时,您需要[重新]分配返回值

def destructure(lst):
    return [[s.lower() for s in e] for e in lst]

lc = [['ONE','TWO','THREE'],['FOUR','FIVE','SIX']]

print(destructure(lc))

输出:

[['one', 'two', 'three'], ['four', 'five', 'six']]

注:

此代码创建一个新列表(列表) - 即原始列表未修改

© www.soinside.com 2019 - 2024. All rights reserved.