60D5 – dict 和 set 基本操作、字典视图等 6 个方面的总结

集合

集合是一种不允许元素出现重复的容器。

案例:判断一个列表中是否含有重复元素,便可借助集合这种数据类型。

def duplicated(lst):
    return len(lst)!=len(set(lst)) # 不相等就意味着含重复元素

创建集合

与字典(dict)类似,集合(set)也是由一对花括号创建 { } 。
但是,容器内的元素不是键值对。

a = {1, 2, 3}

同字典类似,集合内的元素必须是可哈希类型(hashable)。

这就意味着 list、dict 等不可哈希的对象不能作为集合的元素。

In [1]: {[1,2]}

TypeError: unhashable type: 'list'

另一种创建集合的方法,是通过 Python 的内置的 set 函数,参数类型为可迭代对象 Iterable

In [1]: set([1,3,5,7])
Out[1]: {1, 3, 5, 7}

常用方法

集合自带的方法与数学中的集合操作比较类似,提供查找集合间的并、交、差集、子集判断。

求并集:

a = {1,3,5,7}
b, c = {3,4,5,6}, {6,7,8,9}
d = a.union(b,c) # {1, 3, 4, 5, 6, 7, 8, 9}

求差集:

a = {1,3,5,7}
b, c = {3,4,5,6}, {6,7,8,9}
d = a.difference(b,c) # {1}

求交集:

a = {1,3,5,7}
b, c = {3,4,5,6}, {6,7,8,9}
d = a.intersection(b,c) # {}

a 是 b 的子集吗?

In [15]: a = {1,3,5,7}

In [16]: b = {3,4,5,6}

In [17]: a.issubset(b)
Out[17]: False

In [18]: a.issubset(a)
Out[18]: True

In [19]: a.issubset({1,3,5,7,8})
Out[19]: True
页面: 1 2 3

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注