Python:为什么集合之间允许二元 AND 运算符,但列表之间不允许?

Python: Why is binary AND operator allowed between sets, but not lists?

为什么我可以 set('dog') & set('hotdog') 找到相似的字母,但不能用列表做同样的事情?即 ['dog'] & ['hotdog']

从计算机科学的角度来看,这是什么原因?

因为 list 允许重复,所以它们不能被视为 set。如果元素不是唯一的,则没有关于交集、差异等的正式定义。

比如这个有什么区别

'aaabbc' - 'aab'

您应该只删除它们直到每个唯一元素的计数吗?

'abc'

或者删除第二个列表中出现的任何元素?

'c'