2016-10-17 2 views
0

Я подозреваю, что есть несколько способов сделать это в Python 2.7, но я хотел бы иметь возможность печатать первые три элемента каждого подсписок в комбо. Есть ли способ сделать это без цикла?Нарезка различных элементов в каждой подсписке?

combos = [ [1,2,3,.14], [5,6,7,.18], [9,10,11,.12], [1,2,3,.15] ] 

таким образом, что выход из оператора печати будет гласить:

[ [1,2,3], [5,6,7], [9,10,11], [1,2,3] ] 

*** После того, как ваши предложения: Я изо всех сил, чтобы увидеть, как это будет работать внутри моей структуры кода, но список понимание может быть сделано в рамках, если заявление, как так, что я не узнал:

p0combos = [ [1,2,3,.14], [5,6,7,.18], [9,10,11,.12], [1,2,3,.15] ] 
p0 = [1, 2, 3] 

if p0 not in [combo[:3] for combo in p0combos]: 
    print combo[:3] 
    print 'p0 not found' 
else: 
    print 'p0 found' 
    print combo[3:4] 

выходной сигнал:

p0 found 
[0.15] 

Спасибо всем.

+0

Вам понадобится цикл для этого, как для понимания списка, так и для цикла цикла –

ответ

0

Я подозреваю, что есть более чем один способ сделать это в Python 2.7

Да, и вы можете быть весьма изобретательны с ним. Это еще одна альтернатива

from operator import itemgetter 

map(itemgetter(slice(3)), combos) 
Out[192]: [[1, 2, 3], [5, 6, 7], [9, 10, 11], [1, 2, 3]] 
Смежные вопросы