我试图在这里不使用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)))
我必须在这里错过一些小东西,会让我觉得自己像个白痴。打包我假设的元组只是一个简单的问题。
答案 0 :(得分:2)
str.join
方法希望将Iterable作为参数,但是accumulate
每次迭代都会向其传递两个参数,因此会出现错误。您可以改用str.format
方法:
print(list(accumulate(s.split(), '{} {}'.format)))