2014-10-09 3 views
-2

Мне предоставлен целый стек данных (точнее, 900 кортежей) в каждом из этих кортежей хранится 12 элементов.Tuples - Python 2.7

Мне нужно загрузить второй элемент в кортеж.

Как извлечь второй элемент из каждых 900 кортежей? Любая помощь или предложения, как это сделать, будут оценены.

+0

Здесь вы идете, прочитать: http://www.tutorialspoint.com/python/python_tuples.htm – DBedrenko

ответ

0

Это то, что вы хотите? Скажите, если это сработает.

... 
yourTuples = [(....), (.....)] 
result = [] 
for item in yourTuples: 
    result.append(item[1]) 

print result 
+0

Спасибо, да, это то, что я пытался сделать, похоже, работает :) – newprogrammer1001

+0

понимание списка, вероятно, будет более эффективным - было бы интересно увидеть различия во времени между использованием zip, map, list comprehensions и явным для циклов. –

+0

@ newprogrammer1001 Если это работает, не забудьте принять его в качестве ответа. :) –

5
t1 = (something here) 
t2 = (something here) 
. 
. 
. 
t900= (something here) 
l = [t1, t2 ,... ,t900] 
a = [i[1] for i in l] 
print a 
+0

@ newprogrammer1001 проверить решение. –

0

Карта по списку:

list_of_tuples = [(..., ...), (..., ...), ...] 
second_elements = map(lambda x: x[1], list_of_tuples) 
0

Вы можете легко сделать это с помощью пакета питона numpy

увидеть пример кода ниже,

import numpy 

initial_list = [(1, 2, 3, 4), (1, 2, 3, 4), (1, 2, 3, 4), (1, 2, 3, 4), (1, 2, 3, 4), (1, 2, 3, 4), (1, 2, 3, 4), (1, 2, 3, 4), (1, 2, 3, 4), ] 

array = numpy.array(initial_list) 
print array[:,1] 
+0

Это предполагает, что NumPy может найти один «dtype», который подходит для всех элементов кортежа. –

0

Если у вас есть стек данных i п форма списка, вы можете просто сделать это с помощью zip:

lt=[(1,2,3),(4,5,6),(7,8,9)] 
print zip(*lt)[1] 

выход:

(2, 5, 8)