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] |
嵌套列表理解分别处理
如果您在
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'] |
要么使用
1 | map(str.lower,line) |
或列表理解(基本上是句法糖)
1 | [x.lower() for x in line] |
这个过程可以为整个数据集嵌套
1 | [[x.lower() for x in line] for line in dataset] |
如果你想把所有的线路连接成一条,使用
1 | reduce(list.__add__,[[x.lower() for x in line] for line in dataset]) |
如果希望在python中转换列表中的所有字符串,只需使用以下代码:
1 | [w.lower() for w in My_List] |
你的单名是