我有一个假设的.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]]
但它没有用。它给了我一个错误。
感谢任何帮助。
答案 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]])
编辑:这个答案可能不是您正在寻找的答案,因为我正在阅读帖子,问题似乎不是错误,而是其他内容。 你的问题是什么并不是很清楚。也许您可以添加一些完整的代码而不仅仅是样本来更好地解释问题。