我有一个元组列表:
tups = [('a',5,'test'),('b', 8, 'test1')]
对于每个元组,我需要提取索引 i 处的值。
显然,我可以遍历列表中的每个元组,获取我想要的值并将其弹出到数组中......但是,我认为应该有更好的方法。
理想情况下,我想将我的元组列表转换为矩阵或 DataFrame(或类似的东西),我可以在其中提取列作为数组。
例如,使用上面的元组列表,我想做如下事情:
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 或 native python 除外)的情况下执行此操作。
最佳答案
使用运算符
:
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(...)
。
关于python - 如何将元组列表转换为矩阵以进行列访问?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45236622/