我想创建一个拉链循环我有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
可能包含任意数量的行。
答案 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)
当参数已经在列表或元组中但需要为需要单独位置参数的函数调用解包时,会发生相反的情况。例如,内置的range()函数需要单独的start和stop参数。如果它们不是单独可用的,请使用* -operator编写函数调用以从列表或元组中解压缩参数。