我需要动态代码:
如果文件数据如下所示,那么如何在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]
感谢
答案 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
函数。