文章目录
  1. 1. Sets(集合)
    1. 1.1. 集合的构建
    2. 1.2. 集合元素测试
    3. 1.3. 集合运算
  2. 2. Dictionaries(字典)
    1. 2.1. 字典的构建
    2. 2.2. 字典的查询
    3. 2.3. 字典的操作
    4. 2.4. 字典元素测试
    5. 2.5. 字典函数

今天我们就接下来介绍一下剩下的一点常用的Python数据结构。今天介绍的有Sets(集合)和Dictionaries(字典),这两种数据结构虽然用的相对较少,但是在我们学习和使用Python的过程中也是发挥着极大的作用的。长话短说,我们来看看这两种数据结构吧。

Sets(集合)

集合(set)是一个无序不重复元素的集。
基本功能是进行成员关系测试和消除重复元素。
可以使用大括号{},或者set()函数创建set集合。
注意:创建一个空集合必须用 set() 而不是 { },因为{ }是用来创建一个空字典。

集合的构建

1
2
3
>>> student = {'Tom', 'Jim', 'Mary', 'Tom', 'Jack', 'Rose'}
>>> print(student) # 重复的元素被自动去掉
{'Jim', 'Jack', 'Mary', 'Tom', 'Rose'}

集合元素测试

集合还可以用以下的句式来测试集合元素是否在集合中,结果返回类型为布尔型。

1
2
>>> 'Rose' in student # membership testing(元素测试)
True

集合运算

此外,集合还可以通过set来进行集合运算。

1
2
3
4
5
6
7
8
9
10
11
12
>>> a = set('abracadabra')
>>> b = set('alacazam')
>>> a
{'a', 'b', 'c', 'd', 'r'}
>>> a - b # a和b的差集
{'b', 'd', 'r'}
>>> a | b # a和b的并集
{'l', 'm', 'a', 'b', 'c', 'd', 'z', 'r'}
>>> a & b # a和b的交集
{'a', 'c'}
>>> a ^ b # a和b中不同时存在的元素
{'l', 'm', 'b', 'd', 'z', 'r'}

Dictionaries(字典)

字典(dictionary)是Python中另一个非常有用的内置数据类型。
字典是一种映射类型(mapping type),它是一个无序的键 : 值对集合。
关键字必须使用不可变类型,也就是说list和包含可变类型的tuple不能做关键字。
注意:在同一个字典中,关键字还必须互不相同。

字典的构建

1
2
3
4
>>> dic = {} # 创建空字典
>>> tel = {'Jack':1557, 'Tom':1320, 'Rose':1886}
>>> tel
{'Tom': 1320, 'Jack': 1557, 'Rose': 1886}

字典的查询

字典字典,顾名思义,肯定是像我们日常用的字典一般,可以进行查询操作的,而且查询操作还是字典的最重要功能。

1
2
>>> tel['Jack'] # 主要的操作:通过key查询
1557

字典的操作

1
2
3
4
5
6
7
>>> del tel['Rose'] # 删除一个键值对
>>> tel['Mary'] = 4127 # 添加一个键值对
>>> tel
{'Tom': 1320, 'Jack': 1557, 'Mary': 4127}
>>> list(tel.keys()) # 返回所有key组成的list
['Tom', 'Jack', 'Mary']
>>> sorted(tel.keys()) # 按key排序

字典元素测试

和集合一样,字典也支持元素的测试,返回的类型也是布尔型。

1
2
3
4
5
['Jack', 'Mary', 'Tom']
>>> 'Tom' in tel # 元素测试
True
>>> 'Mary' not in tel # 元素测试
False

字典函数

构造函数 dict() 直接从键值对sequence中构建字典,当然也可以进行推导,如下:

1
2
3
4
5
6
7
8
>>> dict([('sape', 4139), ('guido', 4127), ('jack', 4098)])
{'jack': 4098, 'sape': 4139, 'guido': 4127}
>>> {x: x**2 for x in (2, 4, 6)}
{2: 4, 4: 16, 6: 36}
>>> dict(sape=4139, guido=4127, jack=4098)
{'jack': 4098, 'sape': 4139, 'guido': 4127}

另外,字典类型也有一些内置的函数,例如clear()、keys()、values()等。
注意:

  1. 字典是一种映射类型,它的元素是键值对。
  2. 字典的关键字必须为不可变类型,且不能重复。
  3. 创建空字典使用{ }。

文章出自:Krzer http://www.krzer.com/版权所有。本站文章除注明出处外,皆为作者原创文章,可自由引用,但请注明来源。

文章目录
  1. 1. Sets(集合)
    1. 1.1. 集合的构建
    2. 1.2. 集合元素测试
    3. 1.3. 集合运算
  2. 2. Dictionaries(字典)
    1. 2.1. 字典的构建
    2. 2.2. 字典的查询
    3. 2.3. 字典的操作
    4. 2.4. 字典元素测试
    5. 2.5. 字典函数