有没有更快的方法来拆分列表中的元素并包括拆分元素.如果元素是单词,则不需要再次添加拆分元素.我目前的工作解决方案如下所示,如果有任何改进的话,我只想要改进

final_list = []
lists = ["the", "I am there", "call me"]
for l in lists:
    splitted_l = l.split()
    if len(splitted_l) == 1:
        final_list.append(splitted_l)
    else:
        splitted_l.append(l)
        final_list.append(splitted_l)
        
print(final_list)

---------
output = [['the'], ['I', 'am', 'there', 'I am there'], ['call', 'me', 'call me']]

推荐答案

这应该会更快,尽管我没有对其进行基准测试:

final_list = []
lists = ["the", "I am there", "call me"]

final_list = [x.split() + [x] if len(x.split()) > 1 else [x] for x in lists]

它使用列表理解,这将是速度提升的一个来源.另一方面,它分两次,这不是很理想,但它提供了一种区分单个词和多个词的方法.

Python-3.x相关问答推荐

需要使用regex匹配字符串的帮助,直到最后一次出现开闭括号,开闭括号中的值是可选的

CONNEXION.EXCEPTIONS.ResolverError:运行pyz文件时未命名模块

如何转换Pandas中的数据,以使我 Select 的列名变为行值并增加行?

如何在输入正确的用户名和密码时添加按钮?

如何从枚举中获取某个值?

合并所有文件并获取特定列数据

按字母顺序排序列表 (OrderFilter),条件是值为 '' 的条目位于列表 DRF 的末尾

使用 Python 截断并重新编号对应于特定 ID/组的列

如何键入提示函数,在 Python 中通过类decorator 添加到类中

合并问卷中多列中的稀疏问题 - Pandas

使用正确的数据类型时,使用 Cerberus 验证 JSON 架构会引发错误

pymongo 失败并出现错误未定义

Semaphore信号量 Python 的工作原理

如何在 VSCode 的在 Cloud Run Emulator 上运行/调试构建设置中添加 SQL 连接

从 Python2 到 Python3 的这种解包行为的变化是什么?

ValueError:FixedLocator 位置的数量 (5),通常来自对 set_ticks 的调用,与刻度标签的数量 (12) 不匹配

为什么 Django South 1.0 使用 iteritems()?

asyncio.Semaphore RuntimeError: Task got Future 附加到不同的循环

使用 Python3 与 HDFS 交互的最佳模块是什么?

finally 总是在 try 块返回之前运行,那么为什么 finally 块中的更新不会影响 try 块返回的变量的值呢?