我有一个简单的计数器列表:
> counter_list
Counter({'Pig': 1}), Counter(), Counter({'Chicken': 3})
我似乎找不到移除空柜台的简单方法。
我试过使用
counter_list += Counter()
根据文档,没有运气。
del
似乎只删除计数器的内容,而不是实际的计数器,充其量只是创建更多的空计数器。
感谢任何建议,并为未来的前额拍板提前道歉。
我有一个简单的计数器列表:
> counter_list
Counter({'Pig': 1}), Counter(), Counter({'Chicken': 3})
我似乎找不到移除空柜台的简单方法。
我试过使用
counter_list += Counter()
根据文档,没有运气。
del
似乎只删除计数器的内容,而不是实际的计数器,充其量只是创建更多的空计数器。
感谢任何建议,并为未来的前额拍板提前道歉。
使用列表推导来构建一个新的counter_list
:
counter_list = [item for item in counter_list if item]
这是因为空的 Counter 是Falsish
,而非空的 Counter 是Truish
:
In [27]: bool(collections.Counter())
Out[27]: False
In [28]: bool(collections.Counter([1]))
Out[28]: True
尝试:
counter_list[:] = (c for c in counter_list if c)
一个更通用的答案,它不依赖于item
' Falseish
' 的类型(但假设它的长度由 合理返回len
)
counter_list = [item for item in counter_list if len(item) != 0]