当我需要拆分一行,并将列表中的所有单词都设为小写时,哪一个是首选方式:
1)
list = []
for word in line.split():
word = word.lower()
list.append(word)
2。)
list = []
for word in line.lower().split():
list.append(word)
是否有任何性能影响?它实际上是否有任何区别(第二个更短)。
修改
添加了缺少的split()
。
答案 0 :(得分:5)
可能更紧凑的东西:
>>> a = "I AM A DEVELOPER"
>>> a.lower().split()
['i', 'am', 'a', 'developer']
答案 1 :(得分:4)
也许试试list comprehension
[x.lower() for x in line]
将返回一个包含降低单词的列表。如果你想省略空格:
[x.lower() for x in line if x.strip() != '']
答案 2 :(得分:2)
我不知道速度,但这不符合你的想法:for word in line.lower()
。它会产生你的角色,而不是文字。
答案 3 :(得分:1)
只要您为每个单词调用lower
和append
,我认为您调用它们的顺序并没有任何不同。
答案 4 :(得分:0)
我的偏好是:
words = line.lower().split()
这比:
更好words = [word.lower() for word in line.split()]
如果n是单词数,则第一个进行n + 1个分配,而第二个进行2n。
答案 5 :(得分:0)
由于列表理解已在另一个答案中指出,这是另一种方法:
lst=map(lambda x: x.lower(),line)
另外,请尽量不要使用已在Python中使用的list
等变量名称。这是非常糟糕的形式,并且会在任何非平凡的项目中造成很多混乱。