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

时间:2011-12-31 17:47:01

标签: python list

我有一个列表列表,我想从此列表中的特定索引创建多个较小的列表。如果我有这个大的“矩阵”,我可以创建一个由这个矩阵收集的整数组成的小列表吗?

代码:

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中正确执行此操作。帮我填写括号中的实际内容。

谢谢!

4 个答案:

答案 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)

编辑:刚才意识到我完全误解了这个问题。不相关的答案,抱歉。不删除因为这可能与其他人有关