簡體   English   中英

Python - 如何獲取每個列表的第一行?

[英]Python - How to get the first row of each list?

我需要獲取列表的每一行並創建一個新列表。 讓我解釋。

我有這個:

data = [[204.0, u'stock'], [204.0, u'stock']]

我需要改變這個:

column1 = [204.0, 204.0]
colunm2 = [u'stock', u'stock']

關於如何做到這一點的任何線索?

最好的祝福,

使用zip()

>>> data = [[204.0, u'stock'], [204.0, u'stock']]
>>> zip(*data)
[(204.0, 204.0), (u'stock', u'stock')]
>>> column1, column2 = zip(*data)
>>> column1
(204.0, 204.0)
>>> column2
(u'stock', u'stock')

或者,來自itertools izip()

>>> from itertools import izip
>>> column1, column2 = izip(*data)
>>> column1
(204.0, 204.0)
>>> column2
(u'stock', u'stock')

一個簡單的列表理解就可以了。

data = [[204.0, u'stock'], [204.0, u'stock']]

column1 = [i[0] for i in data]
column2 = [i[1] for i in data]

>>> column1
 [204.0, 204.0]
>>> column2
 ['stock', 'stock']

可能是,在一行

>>> data = [[204.0, u'stock'], [204.0, u'stock']]
>>> columns = [ [d[k] for d in data] for k in range(2)]
[[204.0, 204.0], ['stock', 'stock']]
>>> columns[0]
[204.0, 204.0]

如果變量的大小可以改變,你可以這樣做:

columns = [ [d[k] for d in data] for k in range(max(map(len,data)))]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM