2015-05-05 13 views
11

tôi có một danh sách như thế này:Python Làm thế nào để có được tất cả các yếu tố đầu tiên trong 2 Danh sách Dimensional

a = ((4.0, 4, 4.0), (3.0, 3, 3.6), (3.5, 6, 4.8)) 

Tôi muốn một kết quả như thế này (MỌI yếu tố đầu tiên trong danh sách):

4.0, 3.0, 3.5 

Tôi đã thử một [:: 1] [0], nhưng nó không hoạt động

Tôi chỉ mới bắt đầu học Python tuần trước. phiên bản Python = 2.7.9

+0

Đó không phải là danh sách ... Nếu bạn muốn làm việc với mảng, hãy nhìn vào 'numpy'. – jonrsharpe

Trả lời

23

Bạn có thể lấy chỉ số [0] từ mỗi phần tử trong một danh sách hiểu

>>> [i[0] for i in a] 
[4.0, 3.0, 3.5] 

Cũng chỉ để được pedantic, bạn không có một list của list, bạn có a tuple của tuple.

+0

Cũng trong trường hợp đó, bạn có lẽ nên trả về một bộ tuple. Hãy thử chuyển biểu thức trình tạo vào từ khóa 'tuple'. –

2

Bạn có thể lấy nó như

[ x[0] for x in a] 

mà sẽ trả về một danh sách các phần tử đầu tiên của mỗi danh sách trong a

13

sử dụng zip

columns = zip(*rows) #transpose rows to columns 
print columns[0] #print the first column 
#you can also do more with the columns 
print columns[1] # or print the second column 
columns.append([7,7,7]) #add a new column to the end 
backToRows = zip(*columns) # now we are back to rows with a new column 
print backToRows 

bạn cũng có thể sử dụng NumPy

a = numpy.array(a) 
print a[:,0] 
+2

trong python 3, bạn cần phải làm danh sách (zip (* rows)), nếu không nó không phải là subscriptable. – mehmet

0

Hãy thử sử dụng

for i in a : 
    print(i[0]) 

tôi đại diện cho hàng cá nhân trong a.So, i [0] represnts ngày 1 yếu tố của mỗi hàng.

Các vấn đề liên quan