Найти - Пользователи
Полная версия: двумерный список в одномерный выражением-генератором
Начало » Python для новичков » двумерный список в одномерный выражением-генератором
1
FanOfGun
возможно? как? заранее благодарен
FanOfGun
upd. можно не генератором, но в одну строку кода
wbt
Обсуждали несколько дней назад:

# работает
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
FishHook
import re
a = [ [1,2,3], ['a','b','cd'], 1, 2, 3]
print re.findall(r"\w+", str(a))
bismigalis
(item for sublist in lst for item in sublist)
FanOfGun
wbt, спасибо, жаль это работает только для списков
FishHook, имхо сильно костыльно
bismigalis, спасибо, вот это наверно то, что я искал
bismigalis
хотя мне больше по душе такой вариант

from itertools import chain
chain(*lst)
py.user.next
>>> import itertools
>>> 
>>> lst = [[1, 2, 3], [4], [5, 6, 7]]
>>> list(itertools.chain.from_iterable(lst))
[1, 2, 3, 4, 5, 6, 7]
>>>
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB