Задать вопрос
Scorpion_MB
@Scorpion_MB
Изучаю Питон

Как организовать список в одну строку в Питоне?

Как правильно написать код вычисления списка в одну строку? Есть такой код:
a_list = [1, [2, 3]]
new_list = []

for el in a_list:
    if isinstance(el, list):
          for inner_el in el:
               new_list.append(inner_el)
    else:
          new_list.append(el)

Как правильно заменить его одной строкой? Следующие варианты не работают:
new_list = [inner_el if isinstance(el, list) else el for el in a_list for inner_el in el]

new_list = [el if not isinstance(el, list) else inner_el for el in a_list for inner_el in el]


Выдается ошибка: TypeError: 'int' object is not iterable
  • Вопрос задан
  • 183 просмотра
Подписаться 1 Простой 4 комментария
Решение пользователя MinTnt К ответам на вопрос (3)
MinTnt
@MinTnt
print(sum(map(lambda x: x if isinstance(x, list) else [x], a_list), []))


a_list = [1, [2, [3]]]

def one_dimens_mass(lst):
  new_list = []
  for elem in lst:
    if type(elem)==list:
      new_list+= one_dimens_mass(elem)
    else:
      new_list.append(elem)
  return new_list
  
print(one_dimens_mass(a_list)
Ответ написан
Комментировать