Spojování seznamu seznamů

Opět chvilka jednoduchého Pythonu.

Kdesi v programu se nám vyskytne seznam seznamů:

l = [['seznam', 'ruznych'], ['ruzne', 'dlouhych'], ['seznamu']]

Nejjednodušší možnost je „rozepsat se“:

new_list = []
for li in l:
    for i in l:
        new_list.append(i)

To je ovšem roztahané, se dvěma cykly a vůbec nepěkné. Existuje přitom jednoduchá a čitelná alternativa s využitím modulu itertools:

from itertools import chain

new_list = list(chain(*l))

Pár poznámek:

Published on March 29, 2010 under česky python snippet začátečníci