我编写了一个脚本,其中一个脚本生成了一堆空列表,并应用了一个具有以下结构的代码:
A,B,C,D=[],[],[],[]
产生输出:
A=[]
B=[]
C=[]
D=[]
现在的情况是,每次使用不同的数据集作为输入时,我都必须手动修改字母。我想把它自动化。 我想过这么做:
FieldList=[A,B,C,D]
bracket=[]
[[0]for field in FieldList]
for field in FieldList:
bracket=bracket+["[]"]
FieldList=bracket
在这里,我试图复制“A,B,C,D=[],[],[],[],[]”,但显然这不是它的工作原理。
我也试过:
FieldList=[A,B,C,D]
bracket=[]
[[0]for field in FieldList]
for field in FieldList:
field=[]
但最后它只生成一个列表调用“field”。
#所以,这就是我需要的名单。我将从csv中读取信息,并将从每行提取的数据添加到列表中。如果生成一个“列表列表”,我还可以单独调用每个列表来添加内容吗?
A,B,C,D=[],[],[],[]
with open(csvPath+TheFile, 'rb') as csvfile: #Open the csv table
r = csv.reader(csvfile, delimiter=';') #Create an iterator with all the rows of the csv file, indicating the delimiter between columns
for i,row in enumerate(r): #For each row in the csv
if i > 0: #Skip header
A.append(float(row[0])) #Extract the information and append it to each corresponding list
B.append(float(row[1]))
C.append(format(row[2]))
D.append(format(row[3]))
你太复杂了。只需使用列表或字典:
然后根据需要引用
fields['A']
等,或者循环结构以依次处理每个。根据您的使用示例,您实际上需要的是
zip()
:对于本例,请注意
csv.reader()
基本上将文件分解为以下格式的数据:例如:
现在,您有一个变量
columns
,其形式为:好的,我们将其应用到csv文件:
就这样!
注意:对于这个例子,我们假设
"mycsv.csv"
在每行中有正确的列数。您可能需要执行检查以确保所有行都已“填充”。相关问题 更多 >
编程相关推荐