Как извлечь простую строку из кортежа в Python (вопрос новичка) - PullRequest
5 голосов
/ 30 июля 2010

У меня довольно большой кортеж, который содержит:

[('and', 44023), ('cx', 37711), ('is', 36777) .... ]

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

and
cx
is

Как мне это кодировать (с некоторой степенью встроенности)?

Ответы [ 4 ]

14 голосов
/ 30 июля 2010
[tup[0] for tup in mylist]

Используется понимание списка.Вы также можете использовать круглые скобки вместо внешних скобок, чтобы сделать их понятными для генератора, поэтому оценка будет ленивой.

6 голосов
/ 30 июля 2010

Просто чтобы предложить альтернативный путь решения Мэтью.

tuples = [('and', 44023), ('cx', 37711), ('is', 36777) .... ]
strings, numbers = zip(*tuples)

В случае, если вы в какой-то момент решите, что хотите обе части кортежа в отдельных последовательностях (избегая двух пониманий списка).

1 голос
/ 30 июля 2010

Если вы хотите получить точный вывод

and
cx
is

Затем используйте понимание списка в сочетании с методом strings join, чтобы присоединиться к символу новой строки, например

yourList = [('and', 44023), ('cx', 37711), ('is', 36777)]
print '\n'.join([tup[0] for tup in yourList])
0 голосов
/ 30 июля 2010

Вы можете распаковать свои кортежи в цикле for, например так:

for word, count in mytuple:
    print "%r is used %i times!" % (word, count)

Вы можете увидеть, что это широко используется в документации Python: http://docs.python.org/tutorial/datastructures.html#looping-technique

...