我试着用Python反转单词。简单问题(leetcode)。你知道吗
溶液1:(20 ms-99.54%百分位数)
words = reversed([word.strip() for word in words if word != ''])
answer = " ".join(words).strip()
溶液2:(24 ms-48%百分位数)
words = [word.strip() for word in words if word != '']
answer = " ".join(reversed(words)).strip()
我想找出这种差异的原因?你知道吗
这里唯一的区别在于对临时
list
的引用何时被丢弃(在第一种情况下是在join
期间,在第二种情况下是在函数退出之前)。但除非时间框架以某种方式被打破(在这两种情况下都应该包含任何清理时间),否则这不太可能有什么关系。你知道吗否则,除非涉及到具有奇怪行为的其他解释器,否则这两组代码的行为应该相同(除了根据是先存储
list
还是先调用reversed
来交换顺序之外,操作代码是相同的);时间差似乎更可能是随机的。你知道吗使用
timeit
(https://docs.python.org/3.7/library/timeit.html)运行基准测试,以查看时间大致相同(对于我猜测的输入示例):相关问题 更多 >
编程相关推荐