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