关于python:如何将列表列表中的元素转换为小写?

How to convert elements in a list of list to lowercase?

我正在尝试转换小写列表的元素。这就是它的样子。

1
2
print(dataset)
[['It', 'went', 'Through', 'my', 'shirt', 'And', 'came', 'out', 'The', 'back', 'and', 'hit', 'the', 'kid', 'behind', 'me', 'in', 'the', 'toe']]

我试过这样做:

1
2
for line in dataset:
    rt=[w.lower() for w in line]

但是,这会给我一个错误,说明List对象没有属性lower()。


您有一个嵌套结构。或者展开(如果只包含一个列表,则为Ever),或者使用嵌套的列表理解:

1
[[w.lower() for w in line] for line in dataset]

嵌套列表理解分别处理dataset列表中的每个list

如果您在dataset中只包含一个列表,您也可以打开:

1
[w.lower() for w in dataset[0]]

这将生成一个直接包含低位字符串的列表,而无需进一步嵌套。

演示:

1
2
3
4
5
>>> dataset = [['It', 'went', 'Through', 'my', 'shirt', 'And', 'came', 'out', 'The', 'back', 'and', 'hit', 'the', 'kid', 'behind', 'me', 'in', 'the', 'toe']]
>>> [[w.lower() for w in line] for line in dataset]
[['it', 'went', 'through', 'my', 'shirt', 'and', 'came', 'out', 'the', 'back', 'and', 'hit', 'the', 'kid', 'behind', 'me', 'in', 'the', 'toe']]
>>> [w.lower() for w in dataset[0]]
['it', 'went', 'through', 'my', 'shirt', 'and', 'came', 'out', 'the', 'back', 'and', 'hit', 'the', 'kid', 'behind', 'me', 'in', 'the', 'toe']


要么使用map

1
map(str.lower,line)

或列表理解(基本上是句法糖)

1
[x.lower() for x in line]

这个过程可以为整个数据集嵌套

1
[[x.lower() for x in line] for line in dataset]

如果你想把所有的线路连接成一条,使用reduce

1
reduce(list.__add__,[[x.lower() for x in line] for line in dataset])


如果希望在python中转换列表中的所有字符串,只需使用以下代码:

1
[w.lower() for w in My_List]

你的单名是My_List