posl = ['Один', 'Два', 'Три', ['Четыре', 'Пять', 'Шесть' ], 'Семь']
posl = ['Один', 'Два', 'Три', 'Четыре', 'Пять', 'Шесть' , 'Семь']
new_list = [item for sublist in posl for item in sublist]
chained = []
while li:
chained.extend(posl.pop(0))
posl = ['О', 'д', 'и', 'н', 'Д', 'в', 'а', 'Т', 'р', 'и', 'Четыре', 'Пять', 'Шесть' , 'С', 'е', 'м', 'ь']
from itertools import chain
list(chain.from_iterable(posl))
chained = []
for item in posl:
if isinstance(item, list):
for subitem in item:
chained.append(subitem)
else:
chained.append(item)
from collections import abc
def flatten(iterable):
for item in iterable:
if isinstance(item, (str, bytes)):
yield item
elif isinstance(item, abc.Sequence):
yield from flatten(item)
else:
yield item
data = ['Один', 'Два', 'Три', ['Четыре', 'Пять', 'Шесть' ], 'Семь']
flat_data = list(flatten(data))
posl = ['Один', 'Два', 'Три', ['Четыре', 'Пять', 'Шесть', ['Семь', 'Восемь', ['Девять']] ], 'Десять']
def unpack_list(somelist):
res = []
def to_flat(item):
if isinstance(item, list):
for im in item:
to_flat(im)
else:
res.append(item)
return to_flat(somelist)
print(unpack_list(posl))
# ['Один', 'Два', 'Три', 'Четыре', 'Пять', 'Шесть', 'Семь', 'Восемь', 'Девять', 'Десять']
new_posl = []
for i in posl:
if isinstance(i, list):
for j in i:
new_posl.append(j)
else:
new_posl.append(i)
pos1 = ['Один', 'Два', 'Три', ['Четыре', 'Пять', 'Шесть' ], 'Семь']
pos2 = []
for i in pos1:
if type(i) != list:
pos2 += [i] # += для списков это exndend, тут добавляется строка как один элемент, а не как список символов строки, и поэтому в примере получалось posl = ['О', 'д', 'и', 'н', 'Д', 'в', 'а', 'Т', 'р', 'и',
else:
pos2 += i # extend сразу последовательность как следующий элемент как список, то есть список слов, т.к. он и есть список слов
# то есть += или extend слово / строка - добавит слово как список символов,
# а += или extend [..] добавит слово или строку как отдельный элемент
# см про append и extend
print (pos2)