需要一种方法来拉出使用列表中的元素作为变量

时间:2012-12-20 00:09:17

标签: python list vector

在Python中,如果我将列表定义为     xx = [1,2,3,4] 那么我可以将那个(向量)中的数据引用为xx [0]并得到1,xx [1]并获得2等等。

如果我有一个拥有csv的数据文件...数据文件是 - > XX,1,2,3,4 有没有办法让我读取数据文件,并使数据文件(xx)的第一个元素成为[1,2,3,4]的向量名称?我希望能够将xx [0]视为1,将xx [1]视为2,等等。

这是所有Python列表,而不是字典 - 我希望尽可能简单。

2 个答案:

答案 0 :(得分:1)

可以这样做,但真正的问题是,你呢?答案很简单,不是。动态变量名称是一个麻烦的方法,你最好使用字典。它将使您的代码更简单,而不是更复杂。一个人就是:

data['xx'][0]

使用the csv module加载数据,然后构建字典。这可以是一个简单的dictionary comprehension

with open('data.csv') as file:
    reader = csv.reader(file)
    data = {key: values for key, *values in reader}

如果您确实需要订单,那么您可以使用collections.OrderedDict来完成这项工作。

data = collections.OrderedDict((key, values) for key, *values in reader)

请注意,这种优秀的解包语法仅适用于3.x,因此对于2.x,您需要执行更多{line[0]: line[1:] for line in reader}行。

答案 1 :(得分:0)

您应该首先查看Python的csv库。