说明:目录中的\是因为页面转义的问题已联系客服小姐姐,谢谢大家支持!
三岁学习系列,白话带你学编程
字典
字典是包括0个或多个键值对的集合,没有长度限制。可以根据键值索引值的内容
键值对
键–值 是映射类型数据的一种组合,每个元素都是一个键值对。
键就像是一个英文单词,值就像是在英汉字典的页码
键是唯一的,值可以有多个
但是键是无序的
<键>:<值>
通过键来查找值
字典的创建
字典用大括号把键值对进行包裹,键值对之间用逗号隔开
>>> Dcountry = {'浙江':'杭州', '江苏':'南京','江西':'南昌'} >>> Dcountry {'浙江': '杭州', '江苏': '南京', '江西': '南昌'}
字典的查找,修改,添加
查找
字典是采用字符索引的(列表采用数字索引)
字典名[<键名>] = <值>
>>> Dcountry ['浙江'] '杭州'
添加
字典名[<键>] = <值>
>>> Dcountry['安徽']= '合肥' >>> Dcountry {'浙江': '杭州', '江苏': '南京', '江西': '南昌', '安徽': '合肥'}
修改
修改差不多和添加一样
因为<键>不可以重复,所以会被后面的覆盖
利用这一点就可以修改
>>> Dcountry ['浙江']='大美杭州' >>>> Dcountry {'浙江': '大美杭州', '江苏': '南京', '江西': '南昌', '安徽': '合肥'}
是不是觉得这些很简单,嗯!我差点也这么以为了。
空字典
空字典要怎么表述?
字典是{……}
空字典是{ }
问题来了? 那个集合也是{……}
注:空集合用 set()
空字典用{ }
字典的函数和方法
<d>.keys()
返回所有的键信息
以键值的形式
>>> Dcountry.keys () dict_keys(['浙江', '江苏', '江西', '安徽'])
<d>.values()
返回所有的值的信息
>>> Dcountry.values() dict_values(['大美杭州', '南京', '南昌', '合肥'])
<d>.items()
返回所有键值对的信息
>>> Dcountry.items() dict_items([('浙江', '大美杭州'), ('江苏', '南京'), ('江西', '南昌'), ('安徽', '合肥')])
注:如果要把以上的返回值类型转换成类表需要使用 list()
>>> list(Dcountry.keys()) ['浙江', '江苏', '江西', '安徽'] >>> list(Dcountry.items()) [('浙江', '大美杭州'), ('江苏', '南京'), ('江西', '南昌'), ('安徽', '合肥')] >>> list(Dcountry.values()) ['大美杭州', '南京', '南昌', '合肥']
<d>.get(<ksy>,<default>)
查找键值存在返回值,不存在返回默认值<default>
>>> Dcountry.get('浙江') '杭州' >>> Dcountry.get('北京')#是空值,不显示 >>> Dcountry.get('北京','是首都') '是首都'
<d>.pop(<ksy>,<default>)
查找键值存在返回值,同时删除该键值对,不存在返回默认值<default>
>>> Dcountry.pop('浙江') '杭州' >>> Dcountry {'江苏': '南京', '江西': '南昌', '安徽': '合肥'} >>> Dcountry.pop('福建')#如果值不存在会报错 Traceback (most recent call last): File "<pyshell#136>", line 1, in <module> Dcountry.pop('福建') KeyError: '福建' >>> Dcountry.pop('福建','字典中不存在') '字典中不存在'
<d>.popitem()
随机取出键值对,以元组的形式返回(key,value)
>>> Dcountry.popitem() ('安徽', '合肥') >>> Dcountry.popitem() ('江西', '南昌') >>> Dcountry.popitem() ('江苏', '南京') >>> Dcountry.popitem() Traceback (most recent call last): File "<pyshell#141>", line 1, in <module> Dcountry.popitem() KeyError: 'popitem(): dictionary is empty'
注意:是取出(相对应随机删除,取出即不存在)如果是空字符串则报错
<d>.clear()
删除所有的键值对
>>> Dcountry = {'浙江':'杭州', '江苏':'南京','江西':'南昌'} >>> Dcountry {'浙江': '杭州', '江苏': '南京', '江西': '南昌'} >>> Dcountry.clear() >>> Dcountry {}
del <d>[<key>]
删除对应的某一键值对
>>> Dcountry = {'浙江':'杭州', '江苏':'南京','江西':'南昌'} >>> del Dcountry['江苏'] >>> Dcountry {'浙江': '杭州', '江西': '南昌'} >>> del Dcountry['福建'] Traceback (most recent call last): File "<pyshell#149>", line 1, in <module> del Dcountry['福建'] KeyError: '福建'
注意:如果键值对不存在则报错,记得用异常处理
<key> in <d> or <key> not in <d>
in 如果键在字典中则返回True,否则返回False
not in 如果键不在字典中则返回True,否则返回False
>>> '浙江' in Dcountry True >>> '浙江' not in Dcountry False
<d>.setdefault(<key>[,<default>])
查看键是否存在,存在返回值,不存在设置键值对
字典名.setdefault.(键名[,值])值默认为0
>>> Dcountry.setdefault('浙江') '杭州' >>> Dcountry.setdefault('福建','福州') '福州' >>> Dcountry.setdefault('山东','字典里面没有') '字典里面没有'
<d1>.update<d2>
更新字典,把字典2的键值更新到字典1中
>>> Dcountry = {'浙江': '杭州', '江西': '南昌', '福建': '福州'} >>> Dcountry1 = {'山东':'济南', '河北':'石家庄', '山西':'太原'} >>> Dcountry.update(Dcountry1) >>> Dcountry {'浙江': '杭州', '江西': '南昌', '福建': '福州', '山东': '济南', '河北': '石家庄', '山西': '太原'} >>> Dcountry1 {'山东': '济南', '河北': '石家庄', '山西': '太原'}
dict.fromkeys(seq[,value])
用给定键创建新字典
>>> a = dict.fromkeys('金华','火腿') >>> a {'金': '火腿', '华': '火腿'} >>> seq = ('北京', '上海', '天津', '重庆') >>> b = dict.fromkeys(seq,'直辖市') >>> b {'北京': '直辖市', '上海': '直辖市', '天津': '直辖市', '重庆': '直辖市'}
注:必须把值赋给字典名否则无法输出
<d>.copy()
复制生成新的字典
>>> a = b.copy() >>> a {'北京': '直辖市', '上海': '直辖市', '天津': '直辖市', '重庆': '直辖市'}
遍历输出
键
值
键值对
都可以遍历输出
>>> for key in Dcountry1.keys(): print(key) 山东 河北 山西 >>> for value in Dcountry1.values(): print(value) 济南 石家庄 太原 >>> for item in Dcountry1.items(): print(item) ('山东', '济南') ('河北', '石家庄') ('山西', '太原')
字典是实现键值对映射的数据结构,长度任性,键值对也是混合类型的,所以使用非常灵活。
整理大全就到这里了,多多练习,你会发现更多小秘密
希望大家多多支持,点个赞,收藏一波,留个言,三连来一下
谢谢大家~~~~