Python程序设计基础:字典与集合(一)
字典的整体操作是指以字典为操作对象,对字典进行遍历、排序以及合并这三种操作。
和序列的遍历相似,字典的遍历也是通过for循环来实现,根据遍历的内容可以划分为遍历所有的键、遍历所有的值以及遍历所有的条目。
遍历所有的键
字典中存在名为keys()的方法返回字典中所有的键,可以和for循环一起使用进行键的遍历。
若想同时查看键所对应的值,可结合字典的访问一起进行。
遍历所有的值
字典中存在名为values()的方法返回字典中所有的值,可以和for循环一起使用进行值的遍历。
遍历所有的条目
字典中存在名为items()的方法返回字典中所有的条目,可以和for循环一起使用进行条目的遍历。
上述遍历方式得到的每个条目都对应一个元组,也可以进一步使用索引的方式分别访问键和值。
字典的排序主要是指将字典中的条目按照期望的顺序进行显示,由于中文的排序涉及到编码较为麻烦,因此主要介绍英文字符的排序。字典中使用内置函数sorted()可以将键按照字母顺序进行排序,默认按照升序进行输出。
可以看到上述排序方法只会将键进行输出,且原字典不会发生任何改变,若要改变字典中的条目顺序,可以结合列表和元组的特性进行修改。
字典的合并是指将两个字典的条目合并到一起,实现的途径主要有以下三种:使用for循环、使用update()方法以及使用dict()函数。
使用for循环
这种方式通过for循环遍历字典,将其所有条目逐条加到另一个字典当中。
上述for循环遍历item2中的每个条目并将其逐条加到item1之中。
update()方法
update()方法用于将参数字典添加到调用方法的字典之中,其语法格式如下:
字典1.update(字典2)
dict()函数
前面有介绍使用dict()函数可以将一组双元素序列转换成字典,因此在对字典进行合并时可以先将字典转换成列表,先对列表进行合并,然后使用diac()函数将合并后的列表转换成字典。
此外还可以直接使用dict()函数将两个字典进行合并,其语法格式如下:
字典1 = dict(字典2, **字典3)
集合专门用来存放一组无序且互不相同的元素,同时元素必须是不可变类型,结合此特性,集合除了可以用于数学中的集合运算外,还可以用来进行关系测试和消除重复元素。
集合的创建和字典相似,直接在“{}”里面放置相关元素来表示。
{元素1,元素2,......}
若括号中无任何内容,表示为一个空集合,但是空集合的创建不能直接用“集合={}”进行创建,该方式创建的是字典。
除了直接定义集合外,还可以使用set()函数创建集合,该函数专门用于将序列转换成集合,转换的过程中会去掉重复的元素。
set()函数大部分情况下被用于字符串或列表的去重。
由于集合的元素是无序的,因此访问时要么通过集合名进行整体输出,要么使用for循环实现元素的遍历。
集合的操作相对较为简单,主要是进行元素的添加、删除以及查询是否存在。
元素添加
集合.add(i)
将参数i作为元素添加到集合当中,若i是序列,也将其作为一个元素整体加入。
集合.update(i)
将参数i作为元素添加到集合中,i是序列,且可以为可变数据,将其拆分后再加入。
元素删除
集合.remove(i)
将指定元素i从集合中删除,若不存在,则会报错。
集合.discard(i)
将指定元素i从集合中删除,若不存在,正常执行,无任何输出。
集合.pop()
从集合中随机删除一个元素并返回。
集合.clear()
查询是否存在
i in 集合
判断i是否在集合中,若存在则返回True,不存在则返回False。
集合的数学运算主要指求集合的交集、并集、差集以及对称差集。
A和B的交集与并集:
A和B的差集与对称差集:
交集的语法格式:
A|B
A.union(B)
并集的语法格式:
A&B
A.intersection(B)
差集的语法格式:
A-B
A.difference(B)
对称差集的语法格式:
A^B
A.symmetric_difference(B)