我想从序列列表中制作一个矩阵,一个例子可能是: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 回答

宝慕林4294392
TA贡献2021条经验 获得超8个赞
您可以使用列表推导式,其中每个元素都是从主列表中的序列字符串构造的整数列表:
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]]

青春有我
TA贡献1784条经验 获得超8个赞
首先,永远不要将您的列表命名为“列表”。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/150
提交
取消