选择哪个 - line.lower() 还是 word.lower()

2 投票
6 回答
9552 浏览
提问于 2025-04-16 09:08

当我需要把一行文字分开,并把所有单词放到一个小写的列表里时,哪种方法更好呢:

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()

6 个回答

2

我不太清楚速度方面的事情,但这个代码其实并不是你想的那样:for word in line.lower()。它给你的是字符,而不是单词。

4

可以试试用 列表推导式

[x.lower() for x in line]

这样会返回一个所有单词都变成小写的列表。如果你想去掉空格的话:

[x.lower() for x in line if x.strip() != '']
5

可能更简洁一些:

>>> a = "I AM A DEVELOPER"

>>> a.lower().split()
['i', 'am', 'a', 'developer']

撰写回答