如何附加到两个单独的列表?

时间:2019-07-04 17:23:16

标签: python

我需要将两个不同的列表写入两个单独的.csv。

问题是,我的代码(如下)将第二个列表追加到第一个列表(即使两者的列数都不相同)并写入.csv。完全在第二个.csv中重复此操作。

这是在Windows上使用Anaconda的Spyder 3 IDE在Python 3.7上进行的模拟。


...


specEff = switchData = []


...

switchData.append([k, totalAttenData[k][0], rxSite, sameSiteCount, rxFade, totalAttenData[k][1], totalAttenData[k][2]])

...

#%%# Save results
specEff.append([predictAheadMins, aveSpecEff])


if platform == 'win32':
    SwitchDataFile = ".\Results\SwDataFilePred2#"+"{:,}".format(predictAheadMins)+"mins.csv"
    specEffDataFile = ".\Results\SpEffDataFilePred2.csv"
elif platform == 'linux' or platform == 'linux2':
    SwitchDataFile = "./Results/SwDataFilePred2#"+"{:,}".format(predictAheadMins)+"mins.csv"
    specEffDataFile = "./Results/SpEffDataFilePred2.csv"


try:
    with open(SwitchDataFile, 'w', newline='') as outfile:
        csv.writer(outfile).writerows(switchData)
except:
    with open(SwitchDataFile, 'a', newline='') as outfile:
        csv.writer(outfile).writerow(switchData)

try:
    with open(specEffDataFile, 'w', newline='') as outfile2:
        csv.writer(outfile2).writerows(specEffData)
except:
    with open(specEffDataFile, 'a', newline='') as outfile2:
        csv.writer(outfile2).writerows(specEffData)

我希望有两个不同的csv文件存储不同的列表。

1 个答案:

答案 0 :(得分:3)

如果在一行中初始化一个列表,它将创建一个带有两个变量名的列表:

a = b = []
a.append('a')
print(a)
print(b)

结果:

['a']
['a']

相反,您需要对其进行两次初始化以具有两个列表:

a, b = [], []
a.append('a')
print(a)
print(b)

结果:

['a']
[]