从 A*B*C 的 list 中提取一层

从 A*B*C 的 list 中提取一层

怎样从A*B*C  的 list 中提取一层数据呢?用 list[:][:][2] 好像不能提取第三层的东西……请大侠指教啊~
不知道提取一层数据指的是什么……
list[:]是list表的一个复制,list[:][:]又复制了一遍,因此list[:][:][2]等同于list[2]。


QUOTE:
原帖由 jjj137 于 2008-9-23 02:07 发表
不知道提取一层数据指的是什么……
list[:]是list表的一个复制,list[:][:]又复制了一遍,因此list[:][:][2]等同于list[2]。

哦……原来是这样……

我想要提取出一个 A*B 的list,它的元素是原来的list[x][y][2]……除了循环以外有没有什么 pythonic 的方法?
能贴出具体的源代码么?实在无法理解你的A*B……
如果是这样:a=[[1,2,3],[3,4,5]],想要取[1,2,3]只需要a[0]就可以了。
过来学习一下
如果是
a=[
[[111,112,113,114],[121,122,123,124],[131,132,133,134]],
[[211,212,213,214],[221,222,223,124],[231,232,233,234]],
[[311,312,313,314],[321,322,323,324],[331,332,333,334]],]
这看成是 3×3×4 的矩阵,想取其中的第三层,输出这样:
out = [
[113,123,133],
[213,223,233],
[313,323,333]]
,3×3 的矩阵。

怎么简单的实现?

……用matlab吧……


QUOTE:
原帖由 jjj137 于 2008-9-23 18:28 发表
……用matlab吧……

嗯,我最早的代码就是明显的matlab风格……可是想用python啊……
matlab 第一次听说,受教了。
不知这个满足不

[[a[n][0][2],a[n][1][2],a[n][2][2]] for n in (0,1,2) ]

[a[n1][n2][3] for n1 in (0,1,2) for n2 in (0,1,2)]