我有一个元组列表:

tups = [('a',5,'test'),('b', 8, 'test1')]

对于每个元组,我需要提取索引I处的值。
很明显,我可以遍历列表中的每个元组,得到我要的值并将其弹出到数组中。。。不过,我认为应该有更好的办法。
理想情况下,我希望将元组列表转换为矩阵或数据帧(或类似的内容),在这里我可以将列提取为数组。
例如,使用上面的元组列表,我希望执行以下操作:
matrix = tups.AsMatrix(ncols=len(tups[0])) #All tups have the same number of values.
column_values = matrix[0]
print(column_values)
> 'a'
> 'b'

我怎样才能用Python 3做到这一点?我已经看到Pandas有一个DataFrame类型,但理想情况下,我希望在不使用其他库(除了numpy或原生python)的情况下这样做。

最佳答案

使用operator

In [250]: import operator

In [252]: f = lambda l, i: list(map(operator.itemgetter(i), l))

In [253]: f(tups, 0)
Out[253]: ['a', 'b']

In [254]: f(tups, 1)
Out[254]: [5, 8]

In [255]: f(tups, 2)
Out[255]: ['test', 'test1']

如果你用的是python2,放下list(...)

09-26 02:21