Форум сайта python.su
Всем привет!
Суть вопроса: имеется список, в котором только числа, упакованные либо в tuples, либо идущие по-одиночке, например, так:
L = [1, 2, (2, 6, 10), (1, 5), (999, 7), 9, 12]
[1, 2, 2, 6, 10, 1, 5, 999, 7, 9, 12]
[j for i in L for j in i if type(i)==tuple]
Отредактировано alekscooper (Фев. 6, 2015 15:41:52)
Офлайн
>>> import itertools >>> >>> lst = [1, 2, (2, 6, 10), (1, 5), (999, 7), 9, 12] >>> >>> list(itertools.chain.from_iterable(hasattr(i, '__iter__') and i or (i,) for i in lst)) [1, 2, 2, 6, 10, 1, 5, 999, 7, 9, 12] >>>
Офлайн
>>> from functools import reduce >>> L = [1, 2, (2, 6, 10), (1, 5), (999, 7), 9, 12] >>> reduce(lambda x, y: x + (list(y) if hasattr(y, '__iter__') else [y]), [[]] + L) [1, 2, 2, 6, 10, 1, 5, 999, 7, 9, 12]
Офлайн
terabaytДля новичка (меня, в смысле) выглядит весьма загадочно, да
P.S. как же мне не нравится 3 пайтон…
Офлайн
alekscooperмне прост очень не нравится что reduce вынесли в отдельный модуль
Для новичка (меня, в смысле) выглядит весьма загадочно, да
>>> from functools import reduce
Офлайн