我想知道是否有一种方法可以在Python中“弹出”列表中的所有项?这可以通过几行代码来实现,但是操作似乎非常简单,我认为一定有比制作副本并清空原始副本更好的方法。我已经在Google上搜索了很多,也在这里搜索过,但都没有找到解决方法。我意识到弹出所有项将只返回原始列表的副本,但这正是我想要做的。我不想返回列表,而是其中包含的所有项目,同时清除它。
class ListTest():
def __init__(self):
self._internal_list = range(0, 10)
def pop_all(self):
result, self._internal_list = self._internal_list[:], []
return result
# ... instead of:
# return self._internal_list.pop_all()
t = ListTest()
print "popped: ", t.pop_all()
print "popped: ", t.pop_all()
...这当然返回了预期的结果:
popped: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
popped: []