2016-03-25 3 views
3

Учитывая список списков какPython - столбец срез списка списка матрицы

a = [["a","b","c"], 
    ["d","e","f"], 
    ["g","h","i"]] 

как я могу эффективно получить один столбец (например, [ «б», «е», «з»]) или срез столбца (например, ["e", "h"])? К сожалению, я не могу переключиться на NumPy ...

+0

Если вы не можете использовать какие-либо пакеты, вы всегда можете извлечь элемент за элементом, но не эффективно, но он работает. – Deusdeorum

ответ

2

Это эффективный способ:

import operator 

def get_column(list_, n): 
    return map(operator.itemgetter(n), list_) 

Вы можете затем преобразовать вывод в список с помощью list() или порезать объект. Возвращаемый объект является объектом карты (в основном генератором) в Python 3 и новым списком в Python 2.

+0

Is sa ссылку на какую-то часть или просто новый список? – user1403546

+0

Возвращаемый объект является генератором, содержащим все n-ые элементы в списке – Bharel

+0

. Возвращаемым объектом будет список – Deusdeorum

Смежные вопросы