我正在尝试转换小写列表列表的元素。这就是看起来的样子。
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()。
答案 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
是您的列表名称