Составьте матрицу из списка последовательностей в Python - PullRequest
0 голосов
/ 11 декабря 2018

Я хотел бы сделать матрицу из списка последовательностей, например:

list = ['101023', '101011', '102010', '102931']

Теперь я хочу получить такую ​​матрицу:

matrix = [[1, 0, 1, 0, 2, 3], [1, 0, 1, 0, 1, 1], [1, 0, 2, 0, 1, 0], [1, 0, 2, 9, 3, 1]]

Есть ли эффективный способ сделать это для больших списков?

Ответы [ 2 ]

0 голосов
/ 11 декабря 2018

Во-первых, никогда не называйте свой список "список".List - это функция в Python, которую можно вызывать.Кроме того, я думаю, что вы должны смотреть на NumPy при работе с массивами.Но если вы не хотите этого делать, то вот код, который должен быть эффективен для создания желаемого результата.

list1 = ['101023', '101011', '102010', '102931']

list2 = []
for x in list1:
    t=list(x)
    list2.append(t)
print(list2)
[['1', '0', '1', '0', '2', '3'], ['1', '0', '1', '0', '1', '1'], ['1', '0', '2', '0', '1', '0'], ['1', '0', '2', '9', '3', '1']]
0 голосов
/ 11 декабря 2018

Вы можете использовать понимание списка, где каждый элемент является списком целых чисел, построенных из последовательностей в основном списке:

lst = ['101023', '101011', '102010', '102931']
matrix = [[int(c) for c in seq] for seq in lst]

print(matrix)
# [[1, 0, 1, 0, 2, 3], [1, 0, 1, 0, 1, 1], [1, 0, 2, 0, 1, 0], [1, 0, 2, 9, 3, 1]]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...