将列表列表转换为矩阵。 (python 3)

时间:2019-04-14 20:00:11

标签: python-3.x list

我得到了以下列表列表:

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 个答案:

答案 0 :(得分:2)

这是一种使用列表理解的方法:

如果我们有像您的示例这样的嵌套列表。

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)

Have a look at this link about nested list comprehension

答案 1 :(得分:0)

您可以使用类似的方式对其进行转换:

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])