繁体   English   中英

itertools.accumulate但尝试用str.join替换lambda

[英]itertools.accumulate but trying to replace lambda with str.join

我试图不在这里使用lambda,因为它在循环中的性能问题,我知道有用于lambda但我发现这个应该有更好的选择。

原始代码: 这有效,但我不喜欢那里的lambda。

from itertools import accumulate

s = "lorem ipsum dolor"

print(list(accumulate(s.split(), lambda x, y: f'{x} {y}')))
#["lorem", "lorem ipsum", "lorem ipsum dolor"]

我尝试过以下方法:

print(list(accumulate(s.split(), ' '.join)))

我必须在这里遗漏一些小东西,这会让我觉得自己像个白痴。 它必须只是包装我假设的元组的简单问题。

str.join方法期望一个iterable作为参数,然后accumulate为每次迭代传递两个参数,因此错误。 您可以使用str.format方法:

print(list(accumulate(s.split(), '{} {}'.format)))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM