itertools.accumulate,但尝试用str.join

时间:2019-02-21 04:20:00

标签: python

我试图在这里不使用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)))

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

1 个答案:

答案 0 :(得分:2)

str.join方法希望将Iterable作为参数,但是accumulate每次迭代都会向其传递两个参数,因此会出现错误。您可以改用str.format方法:

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