我有一个列表列表,我想从此列表中的特定索引创建多个较小的列表。如果我有这个大的“矩阵”,我可以创建一个由这个矩阵收集的整数组成的小列表吗?
代码:
matrix = [
[0, 0, 0, 5, 0, 0, 0, 0, 6],
[8, 0, 0, 0, 4, 7, 5, 0, 3],
[0, 5, 0, 0, 0, 3, 0, 0, 0],
[0, 7, 0, 8, 0, 0, 0, 0, 9],
[0, 0, 0, 0, 1, 0, 0, 0, 0],
[9, 0, 0, 0, 0, 4, 0, 2, 0],
[0, 0, 0, 9, 0, 0, 0, 1, 0],
[7, 0, 8, 3, 2, 0, 0, 0, 5],
[3, 0, 0, 0, 0, 8, 0, 0, 0],
]
list1 = ([index 1, row 1], [index 2, row 2])
list2 = ([index 3, row 6], [index 7, row 9])
etc.
我如何在Python中正确执行此操作。帮我填写括号中的实际内容。
谢谢!
答案 0 :(得分:4)
如果index1表示FIRST索引,则row1表示第一行, 那么矩阵[0] [0] = 0。 matrix [1] [0] = 8 矩阵[1] [5] = 7
总之,你可以做矩阵[row_index] [col_index]
所以list1 = [matrix [0,0],matrix [2] [2]]
希望这有帮助。
答案 1 :(得分:4)
list1 = [matrix[1][1], matrix[2][2]]
list2 = [matrix[6][3], matrix[9][7]]
等...
答案 2 :(得分:2)
这里你基本上有一份清单。您可以通过以下方式调用列表中的项目:
listname[index]
SO ....
matrix[0]
会给你[0, 0, 0, 5, 0, 0, 0, 0, 6]
matrix[0][0]
会给你0 ....也就是第零个清单的第零个元素。
请记住,任何列表中的“第一个”元素实际上都是第零个元素。所以矩阵[1]会给你列表中的“第二”东西。
list1 = [matrix[1][1], matrix[2][2]]
list2 = [matrix[6][3], matrix[9][7]]
还有一个注释可以帮助您提出更好的问题...您给出的示例要求列表,但您的示例是按括号分组的项目,表示元组。列表用方括号表示。 []
答案 3 :(得分:0)
类似的东西:
newmatrix = []
for n,i in enumerate(matrix[0]):# assuming the lists are in the same length
templist =[]
for l in matrix:
templist.append(l[n])
print "templist: ",n,"content: ",templist
newmatrix.append(templist)
编辑:刚才意识到我完全误解了这个问题。不相关的答案,抱歉。不删除因为这可能与其他人有关