我写了一个脚本,在某一点上生成了一堆空列表,应用了具有以下结构的代码:
A,B,C,D=[],[],[],[]
Run Code Online (Sandbox Code Playgroud)
产生输出:
A=[]
B=[]
C=[]
D=[]
Run Code Online (Sandbox Code Playgroud)
它现在的方式,每次我使用不同的数据集作为输入时,我必须手动修改字母.我希望能够实现自动化.我想过这样做:
FieldList=[A,B,C,D]
bracket=[]
[[0]for field in FieldList]
for field in FieldList:
bracket=bracket+["[]"]
FieldList=bracket
Run Code Online (Sandbox Code Playgroud)
在这里,我试图复制"A,B,C,D = [],[],[],[]",但显然这不是它的工作原理.
我也尝试过:
FieldList=[A,B,C,D]
bracket=[]
[[0]for field in FieldList]
for field in FieldList:
field=[]
Run Code Online (Sandbox Code Playgroud)
但最后它只产生一个列表调用"字段".
#所以,这就是我需要的列表.我将从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]))
Run Code Online (Sandbox Code Playgroud)
你太复杂了.只需使用列表或字典:
fields = {key: [] for key in 'ABCD'}
Run Code Online (Sandbox Code Playgroud)
然后fields['A']根据需要参考等,或循环结构以依次处理每个结构.