列表ac_hist的初始化值。 保持历史位置跟踪的目的 ac_hist = [[450,600]]
此代码:
ac_hist.append(aircraft_list[i].get_position())
应生成表示不同 [x,y] 位置的列表列表。 每次调用get_position时,其值都会更改。但结果都是一样的。 似乎我正在附加变量的实例而不是值,并且每次变量的值更改时,所有附加的项目都会更改值(用于初始化列表的值除外(?
print ac_hist
产生以下结果:
[[450, 600], [1.414, 234.156]]
[[450, 600], [1.358, 234.552], [1.358, 234.552]]
[[450, 600], [1.302, 234.948], [1.302, 234.948], [1.302, 234.948]]
[[450, 600], [1.246, 235.344], [1.246, 235.344], [1.246, 235.344], [1.246, 235.344]]
谢谢。 追加位于 for 循环内。 我能够通过使用新的list((来解决问题。 在这种情况下,列表(临时(。
for i in range(5):
list(temp) = aircraft_list[i].get_position()
ac_hist.append(temp)
因为 aircraft_list[i].get-position 的结果是一个 2 元素列表,所以我将相同的列表附加到ac_hist。 因此,每次我更新两个元素列表的值时,ac_hist的所有元素都具有相同的值。
感谢您的帮助。