[英]Python create list from specific indexes in a list of lists
我有一个列表列表,我想根据此列表中的特定索引创建多个较小的列表。 如果我有这么大的“矩阵”,我可以创建一个由从这个矩阵收集的整数组成的小列表吗?
代码:
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 中正确执行此操作。 帮我填写括号中的实际内容。
谢谢!
如果 index1 表示第一个索引,row1 表示第一个行,则在这种情况下 matrix[0][0] = 0。 矩阵[1][0] = 8 矩阵[1][5] = 7
总之,你可以做 matrix[row_index][col_index]
所以
list1 = [ matrix[0,0], matrix[2][2] ]
希望这可以帮助。
list1 = [matrix[1][1], matrix[2][2]]
list2 = [matrix[6][3], matrix[9][7]]
等等...
您基本上在这里有一个列表列表。 您可以通过以下方式调用列表中的项目:
listname[index]
所以....
matrix[0]
会给你[0, 0, 0, 5, 0, 0, 0, 0, 6]
matrix[0][0]
会给你 0.... 即第零个列表的第零个元素。
请记住,任何列表的“第一个”元素实际上是第零个元素。 所以 matrix[1] 会给你列表中的“第二个”东西。
list1 = [matrix[1][1], matrix[2][2]]
list2 = [matrix[6][3], matrix[9][7]]
还有一个注释可以帮助您提出更好的问题......您给出的示例需要列表,但您的示例是由表示元组的括号分组的项目。 列表用方括号表示。 []
像这样:
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)
编辑:刚刚意识到我完全误读了这个问题。 不相关的答案,对不起。 不删除,因为这可能与其他人有关
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.