#python #list
#python #Список
Вопрос:
Привет, у меня есть цикл for, который создает 2D список на каждой итерации со следующей структурой
listStructure = [(,1,2,3),(1,2,3)]
Проблема в том, что у меня есть следующий код
l = []
for element in range(2):
a function that returns the above mentioned listStructure
l.append(listStructure)
и это возвращает следующую структуру
l = [[(1,2,3),(1,2,3)],[(1,2,3),(1,2,3)]]
Существует ли способ либо гарантировать, что список имеет следующую структуру
l = [(1,2,3),(1,2,3),(1,2,3),(1,2,3)]
или способ постобработки этого после факта, чтобы иметь вышеупомянутую структуру
Ответ №1:
Используйте list.extend
:
lst = []
for element in range(2):
# a function that returns the above mentioned listStructure
lst.extend(listStructure)
Примечание: Не называйте свою переменную list
, вы затеняете встроенный тип python.
Ответ №2:
способ постобработки этого после факта, чтобы иметь вышеупомянутую структуру
Вы можете сгладить свой результат, используя itertools.chain
следующий способ
import itertools
lst = [[(1,2,3),(1,2,3)],[(1,2,3),(1,2,3)]]
lst = list(itertools.chain(*lst))
print(lst)
Вывод:
[(1, 2, 3), (1, 2, 3), (1, 2, 3), (1, 2, 3)]
Обратите внимание, что itertools.chain возвращает итератор, который я использую list(...)
для получения list
.
Ответ №3:
Не используйте переменные встроенного типа python. вы можете изменить имя переменных на num, num1 или ls. что бы вы ни хотели, но не встроенный тип python.