Skip to main content
 首页 » 编程设计

python之从 Python 列表中弹出所有项目

2025年05月04日14lhb25

我想知道是否有一种方法可以在 Python 中从列表中“弹出所有”项目?

它可以用几行代码完成,但操作看起来很简单我只是假设必须有比制作副本和清空原始文件更好的方法。我用谷歌搜索了很多并在这里搜索,但无济于事。

我知道弹出所有项目只会返回原始列表的副本,但这正是我想要这样做的原因。我不想返回列表,而是返回其中包含的所有项目,同时清除它。

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:  [] 

请您参考如下方法:

这正是它完成的方式。我能想到的唯一实质性改进是就地清空列表:

def pop_all(l): 
    r, l[:] = l[:], [] 
    return r 

此版本与您的版本之间的区别在于从不同位置引用的列表上的行为:

>>> a = [1, 2, 3] 
>>> b = a 
>>> pop_all(a) 
[1, 2, 3] 
>>> b 
[]