如何将元组列表转换为矩阵进行列访问?

2024-03-29 12:46:23 发布

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

我有一个元组列表:

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

对于每个元组,我需要提取索引I处的值

显然,我可以迭代列表中的每个元组,得到我想要的值并将其放入数组中。。。不过,我认为应该有更好的方法。在

理想情况下,我希望将元组列表转换为矩阵或数据帧(或类似的),在那里我可以提取列作为数组。在

例如,使用上面的元组列表,我想做如下操作:

^{pr2}$

如何使用Python3实现这一点?我见过Pandas有一个DataFrame类型,但理想情况下,我希望不使用其他库(除了numpy或原生python)来实现这一点。在


Tags: 数据方法testdataframepandas列表情况矩阵
3条回答

使用operator

In [250]: import operator

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

^{pr2}$

如果您使用的是python2,请删除list(...)。在

试试这个:

import pandas as pd
tups = [('a',5,'test'),('b', 8, 'test1')]
df = pd.DataFrame(tups)
df 

输出:

^{pr2}$

下面是一些定制的原生Python:

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

def fetcher(list_of_tups, ind):
    return [x[ind] for x in list_of_tups]

print(fetcher(tups, 0))  # ['a', 'b']
print(fetcher(tups, 1))  # [5, 8]

或是它的lambda版本,用于某些奇特的

^{pr2}$

相关问题 更多 >