第七章、Python入门教程系列——字典和集合
键值对
什么是键值对,键值对就是键值一一对应的关系数据。举个简单例子,手机通讯录。名字就是键,手机号码就是值,那它们意义对应起来就是,名字->手机,需要找手机号码,只需要通过名字去寻找就可以。这是一种对简单的键值对。
使用代码来简单模拟下,加深键值对的概念
1 | phoneNumber = {"小明":"13360002000", "小红":"18850003000"} |
小明和小红是键,而他们的手机号码就是值,一一对应,小明的手机号码就是13360002000,小红的就是18850003000,只需要通过名字就是得到他们各自的手机号码。这就是键值对。
字典(dict)
在前面体验键值对的时候,代码里的变量就是字典类型的数据,字典也是可变数据类型,所以具备增删改查的操作。
字典是用{}
来表示,在{}
里用,
来分割配一个键值对,在每个键值对里:
左边的是键,:
右边的是值,完整的格式是{键1:值1, 键2:值2, ...}
,注意所有符号都是用英文的。
这里要特别说明的就是键,在python里,键可以是字符串,也可以是整数、小数,还可以是字符串类型或者数字类型的变量。值就不用多说了,任何数据类型都是可以的。
1 | name = "小东" |
这里用的是前面的代码,还添加了用变量和数字来做键,运行没有报错,是完全可以的,不过在这里提一下,键值对,最好是用普通的字符串来做键,这是一个习惯和代码格式规范。最后还打印了phoneNumber的数据类型,是个dict
,也就是字典。
字典的访问和列表/元组相似,同样用[]
来访问,但是不是用下标,而是用键名或者变量。也可以直接使用变量名来访问整个字典。如果前面的知识都有很好的掌握,那么这会很简单。
1 | name = "小红" |
这很简单,没有什么特别的新知识,很快就学会。当然,当你访问一个不存在的键名时,会报错,提示KeyError
。
1 | phoneNumber = {"小明":"13360002000", "小红":"18850003000"} |
出错的提示是KeyError
,键错误,描述是小东,说明小东这个键是不存在的。
删除同样和列表/元组一样,只要把下标改成键名即可。
1 | phoneNumber = {"小明":"13360002000", "小红":"18850003000"} |
这里修改通常是修改字典键的值,而不是键名,键名一旦建立,那么就是没法去修改,这点需要特别注意。如果硬要修改,还是可以做到的。不过这里先不讲解这种内容,放到后面去将。
修改也是一样,将下标换成键名就可以了。
1 | phoneNumber = {"小明":"13360002000", "小红":"18850003000"} |
集合
集合是一种无序不重复的元素序列。和字典非常的像,没有键值对,只有元素。集合是不可变元素。所以只有创建、访问和删除整个集合。
集合的创建和字典一样,也是用{}
来创建的。里面的元素可以任意的数据类型。但是当创建一个空元素的时候需要使用set()
来创建。
1 | name = {"小明","小红","小东","小明"} |
从运行结果可以发现,集合是个无序的,而且是不重复,即使我们给了重复的数据,但打印输出的结果是不重复的,所以集合往往用来做去重。空集合用set()
,输出的也set()
,类型依然是集合。
集合的访问比较特殊,不像字典、列表和元组一样可以访问单个元素,集合只能访问整个元素。或者判断某个元素是否存在。
判断某个元素是否存在,用in
关键字,左面是元素,右边是数据。in
的更多使用细节将会在后面的章节里介绍,这里就不做过多的说明。
1 | name = {"小明","小红","小东","小明"} |
通过del
删除集合。
1 | name = {"小明","小红","小东","小明"} |