在python中的拉链循环

时间:2016-06-14 03:28:24

标签: python-2.7 for-loop zip

我想创建一个拉链循环我有sample.csv文件,其中包含以下条目:

> 1      2       3     4
> a      b       c     d
> apple  banana  cat   dog

并拥有以下代码:

sample= open("sample.csv)
lines = sample.readlines()
testcol = []
for l in lines:
     zipped = zip(testcol ,l)

输出结果为:

[(('1','a'),'apple'),(('2','b'),'banana'),(('3','c'),'cat'),(('4','d'),'dog')]

但我想要的是:

    [('1','a','apple'),('2','b','banana'),('3','c','cat'),('4','d','dog')]

我必须把它放在循环中的原因是因为我的sample.csv可能包含任意数量的行。

1 个答案:

答案 0 :(得分:1)

这应该做的工作:

sample = open("sample.csv)
lines = [line.split() for line in sample.readlines()] #splitting on whitespace to create list of lists
zipped = zip(*lines)

请参阅Unpacking Argument Lists:

  

当参数已经在列表或元组中但需要为需要单独位置参数的函数调用解包时,会发生相反的情况。例如,内置的range()函数需要单独的start和stop参数。如果它们不是单独可用的,请使用* -operator编写函数调用以从列表或元组中解压缩参数。