2016-10-16 2 views
-1

я в настоящее время есть список вроде этого:Python - Как объединить список в списке в один список?

[3, 4, ['x', 'y', 'z'], 5]

и хотите сделать его

[3, 4, 'x', 'y', 'z', 5]

Новый новичок в этом, и попытался искать вокруг, но не смогли найти ничего Я мог понять.

+0

Просто Google 'расплющить список списков в python'. Определенно дубликат. – sisanared

+0

Почему ваша попытка решить эту проблему не работает? Может быть, мы сможем помочь с этим. – wwii

ответ

0
l=[3, 4, ['x', 'y', 'z'], 5] 
nl=[] 
for x in l: 
    if not isinstance(x,int): 
     for y in x: 
      nl.append(y) 
    else: 
     nl.append(x) 

print(nl) 

Один лайнер

l=[3, 4, ['x', 'y', 'z'], 5] 
nl=[];[nl.extend([x] if isinstance(x,int) else x) for x in l] 

Это не flatening список списка, потому что данный один является сочетание списка и Int

+0

[isinstance] (https://docs.python.org/3/library/functions.html#isinstance) «... рекомендуется для тестирования типа объекта ...» – wwii

+0

Ваш «однострочный» пример того, когда НЕ использовать списки. Не смешивайте императивные методы (мутируя структуру данных: например, «list.exend») с функциональными конструкциями, т. Е. Понимайте список. Кроме того, обычно считается, что unpythonic использует несколько операторов в строке, разделенных точкой с запятой, как это. Показатели удобочитаемости. –

Смежные вопросы