1

作为测试拉出大型瓦片集某些元素的正确方法的简单方法,在我的程序中作为二维列表输入,我将以下内容放入 Python Shell:

->>>test = [ [1,2,3],[4,5,6],[7,8,9] ]

在尝试测试它时,我得到了这个:

->>>test1 = test[:][2]

->>>test1

[7, 8, 9]

从输入test[:][2]我希望 test1 返回[3,6,9]

有人可以向我解释为什么我得到了[7,8,9]代替吗?

另外,如果你能解释一下我将如何得到输出[3,6,9]?我知道我只能说以下内容:

>>>test1 = [ test[0][2], test[1][2], test[2][2] ]

但是如果我在我的程序上下文中编写它,那条线会更长,更难维护。如果有[3,6,9]比我上面列出的方法更简单的方法,我将非常感谢您对获得它的一些见解。

4

2 回答 2

5

对于标准 python,你可以这样做:

>>> test = [[1,2,3],[4,5,6],[7,8,9]]
>>> [x[2] for x in test]
[3, 6, 9]
>>> 

至于test1 = test[:][2],这是因为test[:]只是等于test编辑: 实际上,它是完全相同的副本test而不是同一个列表

也看看numpy库。

于 2013-07-10T06:08:40.850 回答
0

test[:]返回 的副本test,所以[[1,2,3],[4,5,6],[7,8,9]]. test[:][2]也是如此[7,8,9]。使用列表理解,您可以轻松获得所需的内容:

>>> [x[2] for x in test]
[3, 6, 9]
于 2013-07-10T06:09:48.560 回答