Mac*_*cha 6 python collections
我有一个字典,其中一些值不可清除.我需要一些方法来比较这两个无序组,以确保它们包含相同的元素.我不能使用列表,因为列表相等性会考虑订单,但是设置不起作用,因为dicts不可清除.我查看了python文档,唯一看起来有用的东西是dict的视图,在某些情况下可以清除,但在这种情况下,这也没有帮助,因为其中一个值是一个包含列表本身的对象,这意味着dict的视图也不会是可以播放的.
是否有这样的情况的标准容器,或者我应该只使用列表并循环遍历两个列表中的每个元素,并确保在另一个列表中的某个位置有相同的元素?
Ray*_*ger 11
当重复的条目不存在时,通常的选择是:
如果元素是可清洗的: set(a) == set(b)
如果元素是可订购的: sorted(a) == sorted(b)
如果你拥有的只是平等: len(a) == len(b) and all(x in b for x in a)
如果你有重复项并且它们的多样性很重要,那么选择是:
如果元素是可清洗的: Counter(a) == Counter(b)
如果元素是可订购的: sorted(a) == sorted(b)
如果你拥有的只是平等: len(a) == len(b) and all(a.count(x) == b.count(x) for x in a)