Используя Python, извлекайте и печатайте элементы из матрицы, содержащей элементы списка - PullRequest
0 голосов
/ 14 марта 2012

У меня есть матрица списков следующего вида.

[[[f,g,h,c],[f,g,h,c],[f,g,h,c],[f,g,h,c],[f,g,h,c],[f,g,h,c]],
 [[f,g,h,c],[f,g,h,c],[f,g,h,c],[f,g,h,c],[f,g,h,c],[f,g,h,c]],
 [[f,g,h,c],[f,g,h,c],[f,g,h,c],[f,g,h,c],[f,g,h,c],[f,g,h,c]],
 [[f,g,h,c],[f,g,h,c],[f,g,h,c],[f,g,h,c],[f,g,h,c],[f,g,h,c]],
 [[f,g,h,c],[f,g,h,c],[f,g,h,c],[f,g,h,c],[f,g,h,c],[f,g,h,c]],
]

Используя Python, я хотел бы напечатать матрицу, извлекая один элемент из каждого из внутренних списков ([f, g, h, c]). Например, извлеките элемент c из каждого внутреннего списка:

[[c,c,c,c,c,c],
 [c,c,c,c,c,c],
 [c,c,c,c,c,c],
 [c,c,c,c,c,c],
 [c,c,c,c,c,c]]

Ответы [ 3 ]

2 голосов
/ 14 марта 2012
f,g,h,c = (1,2,3,4)

matrix = [
 [[f,g,h,c],[f,g,h,c],[f,g,h,c],[f,g,h,c],[f,g,h,c],[f,g,h,c]],
 [[f,g,h,c],[f,g,h,c],[f,g,h,c],[f,g,h,c],[f,g,h,c],[f,g,h,c]],
 [[f,g,h,c],[f,g,h,c],[f,g,h,c],[f,g,h,c],[f,g,h,c],[f,g,h,c]],
 [[f,g,h,c],[f,g,h,c],[f,g,h,c],[f,g,h,c],[f,g,h,c],[f,g,h,c]],
 [[f,g,h,c],[f,g,h,c],[f,g,h,c],[f,g,h,c],[f,g,h,c],[f,g,h,c]],
]

import operator
print [map(operator.itemgetter(3), x) for x in matrix]
2 голосов
/ 14 марта 2012
print([[x[3] for x in y] for y in matrix])
2 голосов
/ 14 марта 2012

Может быть, использовать numpy?

>>>a = [[range(4) for _ in range(4)] for _ in range(4)]
>>>import numpy
>>>b = numpy.array(a)
>>>b
array([[[0, 1, 2, 3],
    [0, 1, 2, 3],
    [0, 1, 2, 3],
    [0, 1, 2, 3]],

   [[0, 1, 2, 3],
    [0, 1, 2, 3],
    [0, 1, 2, 3],
    [0, 1, 2, 3]],

   [[0, 1, 2, 3],
    [0, 1, 2, 3],
    [0, 1, 2, 3],
    [0, 1, 2, 3]],

   [[0, 1, 2, 3],
    [0, 1, 2, 3],
    [0, 1, 2, 3],
    [0, 1, 2, 3]]])
>>>a[:, :, -1]
array([[3, 3, 3, 3],
   [3, 3, 3, 3],
   [3, 3, 3, 3],
   [3, 3, 3, 3]])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...