如何在Python中创建多个(但个别)空列表?

Noe*_*yus 4 python list

我写了一个脚本,在某一点上生成了一堆空列表,应用了具有以下结构的代码:

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)

Mar*_*ers 9

你太复杂了.只需使用列表或字典:

fields = {key: [] for key in 'ABCD'}
Run Code Online (Sandbox Code Playgroud)

然后fields['A']根据需要参考等,或循环结构以依次处理每个结构.

  • 'dict((key,[])用于'ABCD'中的键)用于旧Python(2.6). (2认同)