Преобразование списка списков в матрицу.(питон 3) - PullRequest
0 голосов
/ 14 апреля 2019

Я получил следующий список списков:

mat =  [['a,p,p,l,e'], ['a,g,o,d,o'], ['n,n,e,r,t'], ['g,a,T,A,C'], ['m,i,c,s,r'], ['P,o,P,o,P']]

Как видите, этот список списков не функционирует как матрица должным образом.

Как я могу преобразовать его в:

  mat = [['a','p','p','l','e'], ['a','g','o','d','o'], ['n','n','e','r','t'], ['g','a','T','A','C'], ['m','i','c','s','r'], ['P','o','P','o','P']]

такой, что если я работаю mat[1][2], я получаю o

Ответы [ 2 ]

2 голосов
/ 14 апреля 2019

Вот способ сделать это с пониманием списка:

Если у нас есть вложенный список, как ваш пример.

nested_list = [['a,p,p,l,e'], ['a,g,o,d,o'], ['n,n,e,r,t'], ['g,a,T,A,C'], ['m,i,c,s,r'], ['P,o,P,o,P']]

Мы должны были бы пройти через каждый элемент и разбить строку каждого элемента на «,», чтобы ['a, p, p, l, e'] было бы ['a', 'p', 'p', 'l', 'e'].

# New list
matrix = [item.split(",") for sublist in nested_list for item in sublist] 

print(matrix) 

Теперь результатом будет матрица.

[['a', 'p', 'p', 'l', 'e'], 
 ['a', 'g', 'o', 'd', 'o'], 
 ['n', 'n', 'e', 'r', 't'], 
 ['g', 'a', 'T', 'A', 'C'], 
 ['m', 'i', 'c', 's', 'r'], 
 ['P', 'o', 'P', 'o', 'P']] 

Это то же самое, что написать это:

matrix = []

for item in nested_list:
    for i in item:
        matrix.append(i.split(","))

print(matrix)

Посмотрите на эту ссылку для понимания вложенного списка

0 голосов
/ 14 апреля 2019

Вы можете использовать что-то вроде этого для преобразования:

mat =  [['a,p,p,l,e'], ['a,g,o,d,o'], ['n,n,e,r,t'], ['g,a,T,A,C'], ['m,i,c,s,r'], ['P,o,P,o,P'
newMat = []

for i in mat:
    newMat.append(i[0].split(","))

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