您好,我正在学习 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)
但这行不通。
你没有一个列表,你有一个列表的列表。因此,将 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())
请记住,字符串是不可变的。因此,当您调用 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']]
注:
此代码创建一个新列表(列表) - 即原始列表未修改