2010-10-24 2 views
0

У меня есть список питонаPython список манипуляция

alist = [ [0, 4, 5, 5], [2, 2, 4, 5], [6, 7, 8,13]], [ [3, 4, 5, 5], [2, 2, 4, 5], [6, 7, 8,999] ] 

мне нужен результат

alist = [[0,4,8,13], [3, 4, 8, 999]] 

Это означает, что первые две и последние две цифры в каждом ALIST элемента.

Мне нужен быстрый способ сделать это, поскольку список может быть огромным.

+1

Какая причудливая структура данных вы моделируете? – Daenyth

+1

Держу пари, это домашнее задание. Только они остановились на теге [Домашнее задание]. Здесь легче спросить, чем думать. –

ответ

12
[x[0][:2] + x[-1][-2:] for x in alist] 
1

Объект на самом деле является кортежем, а не списком. Это может вас опрокинуть, если вы ожидаете, что оно будет изменчивым, и его трудно прочитать. Рассмотрите возможность использования продолжение символ \ для длинных строк:

alist = [ [0, 4, 5, 5], [2, 2, 4, 5], [6, 7, 8,13]], [ [3, 4, 5, 5], [2, 2, 4, 5], [6, 7, 8, 999] ] 

понятнее, как

alist = [ [0, 4, 5, 5], [2, 2, 4, 5], [6, 7, 8,13]], \ 
     [ [3, 4, 5, 5], [2, 2, 4, 5], [6, 7, 8, 999] ] 

, который также помогает определить двойной кронштейн, который делает этот кортеж. Для получения списка:

alist = [ [0, 4, 5, 5], [2, 2, 4, 5], [6, 7, 8,13], \ 
     [ [3, 4, 5, 5], [2, 2, 4, 5], [6, 7, 8, 999] ]] 

Если список понимание, как это предлагается в ответ Хавьера не отвечает вашим требованиям скорости, рассмотрим Numpy массив.

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