Создание 2D списка списков столбец за столбцом python - PullRequest
0 голосов
/ 01 октября 2019

Мне нужно составить список из 4 списков, которые у меня есть. Однако я хочу, чтобы каждый список становился столбцом, а не строкой в ​​окончательном списке списков.

Каждый из моих списков состоит из 10 элементов, поэтому я создал пустой список, заполненный нулями, который равен 4 на 10.

rows, columns = (10, 4)
biglist = [[0 for i in range(columns)] for j in range(rows)]

Теперь я хочу знать, какзаполните пустой список списками с моими индивидуальными списками.

Или, было бы лучше сделать 10 новых списков, читая каждое место из каждого из четырех списков по одному, а затем использовать эти новые списки длязаполнить пустой список списков?

Ответы [ 2 ]

1 голос
/ 01 октября 2019

Если я вас правильно понял, вам нужно 10 строк и 4 столбца в вашем окончательном списке.

Подготовка тестовых данных :

l1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
l2 = [x*10 for x in l1]
l3 = [x*100 for x in l1]
l4 = [x*1000 for x in l1]

Кодвам нужно будет написать :

grid = [l1, l2, l3, l4]
trGrid = list(zip(*grid))

Тестирование :

for row in trGrid:
    print(row)
0 голосов
/ 01 октября 2019

(Правка) Один из способов - создать список списков, а затем перевернуть его (здесь нам не нужны списки нулей):

array = [[list1],[list2],[list3],[list4]]
def flipper(array):
    flipped = [[] for x in range(len(array[0]))]
    for y in range(len(array)):
        for x in range(len(array[0])):
            flipped[x].append(array[y][x])
    return flipped

Хорошо, это работает ... сновапри условии, что все элементы списка имеют одинаковую длину.

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