Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Python列表中添加/删除多个对象实例?_Python_List - Fatal编程技术网

如何在Python列表中添加/删除多个对象实例?

如何在Python列表中添加/删除多个对象实例?,python,list,Python,List,我试图在Python中从列表中附加和删除多个对象实例。然而,我找不到一个短的方法来做它,不得不用它来做周期。。。有什么紧凑的方法吗 附加到列表: # Create objects specialAgent.append(Boid(1)) specialAgent.append(Boid(2)) for i in range(2): boids.append(specialAgent[-1-i]) 从列表中删除: # Destroy objects for i in range(l

我试图在Python中从列表中附加和删除多个对象实例。然而,我找不到一个短的方法来做它,不得不用它来做周期。。。有什么紧凑的方法吗

附加到列表:

# Create objects
specialAgent.append(Boid(1)) 
specialAgent.append(Boid(2)) 
for i in range(2):
    boids.append(specialAgent[-1-i]) 
从列表中删除:

# Destroy objects
for i in range(len(specialAgent)):
    boids.remove(specialAgent[i])  

您可以使用切片分配:

>>> L = [1, 2, 3]
>>> L[3:] = [4, 5, 6]
>>> L
[1, 2, 3, 4, 5, 6]
>>> L[-3:] = []
>>> L
[1, 2, 3]
您还可以使用
.extend()
列表方法将多个项目附加到列表中:

>>> L.extend([4, 5, 6])
>>> L
[1, 2, 3, 4, 5, 6]

请注意,以这种方式删除的复杂性为
O(len(specialAgent)*len(boids))
,如果项的数量很大,您可能需要更好的方法来删除它们,例如使用另一个数据结构。事实上,有时脚本运行得很慢,您建议使用哪种结构来存储对象实例?