从数据列表中制作矩阵列表

时间:2016-10-25 18:53:40

标签: python list matrix

我有一个假设的.txt文档数据列表

0 1 2 3 4 5 6 7 8 (值)

我想制作2个像这样的基质列表

list 1            list 2
[0, 1, 2]         [[0],[1],[2]]
[3, 4, 5]         [[3],[4],[5]]
[6, 7, 8]         [[6],[7],[8]]

列表1中的每个项目必须能够在乘以先前声明的矩阵时给我一个点积。

new list 1
dot([0,1,2],mat)
dot([3,4,5],mat)
dot([6,7,8],mat)

我尝试将.txt文档中的3个值作为矩阵附加到列表中(这是在for循环中完成的)

list1.append ([value[0], value[1], value[2]]

但它没有用。它给了我一个错误。

感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

您可以通过 list comprehension 来实现它:

>>> my_string = '0 1 2 3 4 5 6 7 8'
>>> row = 3
>>> my_list = my_string.split() # split the string based on space ' '

>>> list_1 = [my_list[i*3:(i*3)+row] for i in range(row)]
>>> list_1 # Output for example 1
[['0', '1', '2'], 
 ['3', '4', '5'], 
 ['6', '7', '8']]

>>> list_2 = [[[c] for c in my_list[i*3:(i*3)+row]] for i in range(row)]
>>> list_2 # Ouput for example 2
[[['0'], ['1'], ['2']], 
 [['3'], ['4'], ['5']], 
 [['6'], ['7'], ['8']]]

答案 1 :(得分:0)

据我所知,你忘了一个支架,

此:

list1.append ([value[0], value[1], value[2]]

应该是:

list1.append ([value[0], value[1], value[2]])

编辑:这个答案可能不是您正在寻找的答案,因为我正在阅读帖子,问题似乎不是错误,而是其他内容。 你的问题是什么并不是很清楚。也许您可以添加一些完整的代码而不仅仅是样本来更好地解释问题。