繁体   English   中英

Python从列表列表中的特定索引创建列表

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM