Python-如何获取每个列表的第一行?

2024-09-29 01:26:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要得到一个名单的每一行,并制定一个新的名单。让我解释一下。

我有这个:

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

我需要改变一下:

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

有什么线索可以证明这一点吗?

谨致问候


Tags: 证明datastockcolumn1名单问候线索colunm2
3条回答

可能是一行

>>> 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)))]

一个简单的列表理解就可以了。

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']]
>>> 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

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

相关问题 更多 >