5

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

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

4

1 回答 1

2

str.join方法需要一个可迭代对象作为参数,但accumulate每次迭代都将两个参数传递给它,因此会出现错误。您可以改用该str.format方法:

print(list(accumulate(s.split(), '{} {}'.format)))
于 2019-02-21T04:29:28.787 回答