我需要动态代码:
如果文件数据如下所示,那么如何在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]
感谢
基本上,您有一个行列表,您需要一个列列表。这被称为转座,可以用Python非常简洁地写成:
columns = zip(*scores)
完成此操作后,columns[0]
将包含第一列,columns[1]
将包含第二列,依此类推。这些列将是元组。如果你真的需要列表,你可以将list
函数应用于结果:
columns = map(list, zip(*scores))
这种看起来很神奇的语法首先使用*
运算符,该运算符将参数列表解包。这意味着zip(*scores)
等价于:
zip(['0','4', '5'], ['1','0','0'], ['1', '56','96'])
请注意,scores
列表中的每个元素现在都是zip
函数的不同自变量。然后我们使用zip
函数。