Форум сайта python.su
0
возможно? как? заранее благодарен
Офлайн
0
upd. можно не генератором, но в одну строку кода
Офлайн
6
Обсуждали несколько дней назад:
# работает a = [[1,2,3],['a','b','c'],[dict(k=4)]] sum(a,[]) # [1, 2, 3, 'a', 'b', 'c', {'k': 4}] a = [[1,2,3],[4],[5,6,7]] sum(a,[]) # [1, 2, 3, 4, 5, 6, 7]
# не работает a = [[1,2,3],4,[5,6,7]] sum(a,[]) # TypeError: can only concatenate # list (not "int") to list a = [[1,2,3], (4,5)] sum (a,[]) # TypeError: can only concatenate # list (not "tuple") to list
Офлайн
568
import re a = [ [1,2,3], ['a','b','cd'], 1, 2, 3] print re.findall(r"\w+", str(a))
Офлайн
47
(item for sublist in lst for item in sublist)
Офлайн
0
wbt, спасибо, жаль это работает только для списков
FishHook, имхо сильно костыльно
bismigalis, спасибо, вот это наверно то, что я искал
Офлайн
47
хотя мне больше по душе такой вариант
from itertools import chain chain(*lst)
Офлайн
857
>>> import itertools >>> >>> lst = [[1, 2, 3], [4], [5, 6, 7]] >>> list(itertools.chain.from_iterable(lst)) [1, 2, 3, 4, 5, 6, 7] >>>
Отредактировано py.user.next (Авг. 26, 2013 21:53:48)
Офлайн