簡體   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