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

时间:2015-02-25 20:59:04

标签: python set operators

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

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

1 个答案:

答案 0 :(得分:5)

由于list允许重复,因此不能将其视为set。如果元素不是唯一的,那么交集,差异等意义就没有正式的定义。

例如,这会有什么区别

'aaabbc' - 'aab'

你应该只删除每个独特元素的数量吗?

'abc'

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

'c'