Python:用list追加空列表将覆盖先前添加的list

Python:用list追加空列表将覆盖先前添加的list,python,Python,我正在尝试将所有已处理的列表(已删除的空列表项、已删除的所有\n和\r等)添加到名为allOrders的空列表中。问题是,在执行代码之后,allOrders只包含作为最后一个附加的列表 导入操作系统 如果OrderFileListCount>=1: 对于OrderFileList中的singleOrderFile:#对OrderFileList中的所有订单执行以下操作 orderContents=list()#创建空列表 dataremovespace=list()#创建空列表 allOrder

我正在尝试将所有已处理的列表(已删除的空列表项、已删除的所有
\n
\r
等)添加到名为
allOrders
的空列表中。问题是,在执行代码之后,allOrders只包含作为最后一个附加的列表

导入操作系统
如果OrderFileListCount>=1:
对于OrderFileList中的singleOrderFile:#对OrderFileList中的所有订单执行以下操作
orderContents=list()#创建空列表
dataremovespace=list()#创建空列表
allOrders=list()#创建空列表
f=open(os.path.join(directory,singleOrderFile),“rb”)#打开每个订单文件
data=f.read().decode(“utf16”)#解码文件中的数据
dataRemoveLine=data.rstrip().split('\n')#删除新行
dataRemoveTabs=[dataRemoveLine中s的s.strip('\r')#从列表项中删除所有/r
dataRemoveEmpty=list(筛选器(无,dataRemoveTabs))#删除所有空列表项
对于dataRemoveEmpty中的元素:#以下代码修剪列表中的所有元素
element=element.strip()
dataremovespace.append(element)#将修剪过的元素添加回列表
打印(dataRemoveSpaces)#我的验证列表是否已成功处理
allOrders.append(dataremovespace)#用已处理列表追加allOrders列表
我知道“处理”每个单独的列表并不是代码的问题(多亏了last
print
——它看起来和它应该的完全一样)


这里的问题是什么?我见过几个线程处理类似的问题,但无法将它们的解决方案应用于我的问题。

您重新创建
allorder
每次迭代:

allOrders=list()#创建空列表

所以你把它擦掉。在if语句中,将此行移出循环:

if orderFilesListCount >= 1:
    allOrders = list()  # <------------------- HERE
    for singleOrderFile in orderFilesList:
allOrders = list()  # <------------------- HERE
if orderFilesListCount >= 1:
    for singleOrderFile in orderFilesList:
如果OrderFileListCount>=1:
allOrders=list()#放置行:

allOrders = list()#creates empty list

跳出for循环,因为您迭代的每个步骤都在创建一个空列表,因此您只有最后一个列表

您确实需要使用函数。您将数据定义、文件系统IO、处理、输出等功能集于一身。肯定会犯这样的错误。把代码分开。