2010-10-09 3 views
3

У меня есть список подсписков, таких как:Python: как я могу избавиться от второго элемента каждого подсписок?

[[501, 4], [501, 4], [501, 4], [501, 4]]

Как я могу избавиться второго элемента для каждого подсписника? (Т.е. 4)

[501, 501, 501, 501]

Должен ли я просматривать список или есть более быстрый способ? благодаря

ответ

2
a = [[501, 4], [501, 4], [501, 4], [501, 4]] 
b = [c[0] for c in a] 
7

Вы можете использовать список понимание, чтобы сделать первый элемент каждого подсписка:

xs = [[501, 4], [501, 4], [501, 4], [501, 4]] 
[x[0] for x in xs] 
# [501, 501, 501, 501] 
1

Менее вещий, функциональная версия с использованием map:

a = [[501, 4], [501, 4], [501, 4], [501, 4]] 
map(lambda x: x[0], a) 

Меньше вещий, поскольку он не использует списки. См. here.

+0

Я удалил свой комментарий, потому что википедия не соглашалась со мной о том, что первый язык с пониманием списка был, но вы меня неправильно поняли. Мое мнение заключалось в том, что использование понятий list так же функционально, как использование 'map' и' filter'. – sepp2k

+0

@ sepp2k Я тоже удалил. И я согласен с тобой. Я намеревался, чтобы это был приятный дополнительный ответ для людей. – cschol

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