list.append of an instance of a class function



列表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的所有元素都具有相同的值。

感谢您的帮助。

相关内容

最新更新