как разбить элементы в списке Python - PullRequest
0 голосов
/ 02 ноября 2018

У меня есть следующий элемент в списке:

  [0.29839835, [734, 805, 679, 758], 'A']

Мне нужно изменить его на

  [0.29839835, 734, 805, 679, 758, 'A']

Просто разбейте внутренний набор элементов [734, 805, 679, 758] с одного элемента на 4 элемента. Любые приводит пожалуйста?

Ответы [ 2 ]

0 голосов
/ 02 ноября 2018

На этот вопрос уже был дан ответ здесь :

l = [0.29839835, [734, 805, 679, 758], 'A']
a = list()
def flatten(l, a):
    for i in l:
        if isinstance(i, list):
            flatten(i, a)
        else:
            a.append(i)
    return a
print(flatten(l, a))
#[0.29839835, 734, 805, 679, 758, 'A']
0 голосов
/ 02 ноября 2018

Для вашей конкретной структуры данных вы можете использовать itertools.chain с троичным условием:

from itertools import chain

x = [0.29839835, [734, 805, 679, 758], 'A']

res = list(chain.from_iterable([i] if not isinstance(i, list) else i for i in x))

[0.29839835, 734, 805, 679, 758, 'A']

Обобщенное решение см. Сведение нерегулярного списка списков .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...