我在下面写了一个小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)
答案 0 :(得分:3)
您只需将空列表附加到xyz_all
,但这些列表不会保持为空。当你这样做
xyz.append([float(j) for j in line[4:7]])
您要附加到可能已经是xyz_all
的元素的列表。
答案 1 :(得分:-1)
从你的代码中, xyz将是一个长度为零的空列表,但是当你这样做时 xyz = [] xyz_all.append(XYZ) 你要将一个空列表(xyz)附加到列表(xyz_all),这意味着现在xyz_all中有一个元素,它是一个空列表,其长度不是零而是1。 xyz_all = [[]]是一个包含空列表的列表。