Gibt es eine Möglichkeit, sich von rechts nach links in Python zu sammeln?Python

Python-Programme
Anonymous
 Gibt es eine Möglichkeit, sich von rechts nach links in Python zu sammeln?

Post by Anonymous »

Python hat bereits eine itertools.accumulate Funktion. Diese Funktion sammelt sich jedoch von links nach rechts an: < /p>

Code: Select all

>>> list(itertools.accumulate([[x] for x in range(5)]))
[[0], [0, 1], [0, 1, 2], [0, 1, 2, 3], [0, 1, 2, 3, 4]]
< /code>
Anstelle dessen möchte ich mich von rechts nach links ansammeln, wie SO:>>> list(accumulate_from_right([[x] for x in range(5)]))
[[0, 1, 2, 3, 4], [1, 2, 3, 4], [2, 3, 4], [3, 4], [4]]
< /code>
Meine aktuelle Lösung (die nur für Listen anwendbar ist) ist sehr ineffizient und hässlich: < /p>
>>> list(x[::-1] for x in accumulate([y] for y in reversed(range(5))))[::-1]
[[0, 1, 2, 3, 4], [1, 2, 3, 4], [2, 3, 4], [3, 4], [4]]
Was ist der beste Weg, um eine Liste von rechts nach links zu akkumulieren? Ich möchte diese Methode mit einer verschachtelten Liste anwenden können.

Code: Select all

>>> list(accumulate_from_right(['a', 'b', 'c']))
['abc', 'bc', 'c']

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post