繁体   English   中英

附加空列表时应为空的Python列表

[英]Python list that should be empty when appending empty lists

我在下面编写了一个小的Python脚本,该脚本的运行方式出乎意料,但是我无法查明错误。 具体来说,我有一个变量xyz_all ,我希望它是空的,因为我只是向其追加一个空列表,但实际上它包含xyz的元素。 这怎么可能?

with open(filename,'r') as rf:
    xyz = []
    xyz_all = []
    for line in rf:
        if 'A' in line:
            line = line.split()
            xyz.append([float(j) for j in line[4:7]])
        elif 'B' in line:
            xyz = []
            xyz_all.append(xyz)
print(xyz_all)

您只能将空列表附加到xyz_all ,但这些列表不会保持空。 当你做

xyz.append([float(j) for j in line[4:7]])

您将添加到可能已经是xyz_all元素的xyz_all

从您的代码中,xyz将是一个长度为零的空列表,但是当您执行xyz = [] xyz_all.append(xyz)时,您会将一个空列表(xyz)追加到列表(xyz_all)上,这意味着xyz_all中现在有一个元素它是一个空列表,长度不为零,而是1。xyz_all = [[]]是其中包含空列表的列表。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM