如何将列表列表中的元素转换为小写?

时间:2016-02-21 19:13:58

标签: python

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

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

我试过这样做:

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

然而,这给了我一个错误,说列表对象没有属性lower()。

3 个答案:

答案 0 :(得分:12)

您有嵌套结构。解包(如果只包含一个列表,或者使用嵌套列表解析):

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

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

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

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

这会生成一个直接包含小写字符串的列表,而不进一步嵌套。

演示:

>>> 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']

答案 1 :(得分:1)

使用map

map(str.lower,line)

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

[x.lower() for x in line]

此过程可以嵌套整个数据集

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

如果您想将所有行合并为一行,请使用reduce

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

答案 2 :(得分:0)

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

[w.lower() for w in My_List]

My_List是您的列表名称