如何从文件中读取列并在python 3.4中的每个列中添加单独的列

时间:2014-11-13 03:37:01

标签: python

我需要动态代码:

如果文件数据如下所示,那么如何在python 3.4.1中分别在3个列表中添加它的每一列?

0 4 5

1 0 0

1 56 96

我尝试从文件中读取数据并将其存储在如下列表中:scores = [['0','4', '5'],['1','0','0], ['1', '56','96']]。但是现在我不知道如何编写代码将这个数组的每个第一个字母放到3个单独的列表或数组中。例如:list1 = [0, 1,1]list2 = [4,0,56]list3 = [5,0,96]

感谢

1 个答案:

答案 0 :(得分:2)

基本上,您有一个行列表,并且您需要列的列表。这称为转置,可以在Python中非常简洁地编写,如下所示:

columns = zip(*scores)

执行此操作后,columns[0]将包含第一列,columns[1]将包含第二列,依此类推。列将是元组。如果您确实需要列表,可以将list函数应用于结果:

columns = map(list, zip(*scores))

这种看起来很神奇的语法首先使用*运算符unpacks a list of arguments。这意味着zip(*scores)相当于:

zip(['0','4', '5'], ['1','0','0'], ['1', '56','96'])

注意scores列表的每个元素现在是zip函数的不同参数。然后我们使用zip函数。