字典 (dict) 的增删改查及其他方法
目录
一、字典的简介? 字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据。python对key进行哈希函数运算,根据计算的结果决定value的存储地址,所以字典是无序存储的,且key必须是可哈希的。可哈希表示key必须是不可变类型,如:数字、字符串、元组。 ? 字典(dictionary)是除列表以外python之中最灵活的内置数据结构类型。列表是有序的对象结合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。 二、增加字典元素的方法
dic = {'name':'小明','age':29,'job':'程序员'} dic['addr'] = '广州' print(dic) #输出结果为:{'name': '小明','age': 29,'job': '程序员','addr': '广州'} dic['addr'] = '深圳' print(dic) #输出结果为:{'name': '小明','addr': '深圳'}
dic = {'name':'小明','job':'程序员'} dic.setdefault('name','小芳') print(dic) #结果不会改变: {'name': '小明','job': '程序员'} dic.setdefault('height') print(dic) #结果:{'name': '小明','height': 程序员} dic.setdefault('addr','广州') print(dic) #结果 {'name': '小明','height': 程序员,'addr': '广州'} 三、删除字典元素的方法
dic = {'name':'小明','job':'程序员'} dic.pop('job') print(dic) #结果为:{'name': '小明','age': 29} dic.pop('job') print(dic) #此时以及没有job的key,就会报错 KeyError: 'job' print(dic.pop('addr','广州')) #此时虽然找不到‘addr’key,但是不会报错,并且将‘广州’返回 print(dic) #此时字典没有被改变 :{'name': '小明','age': 29}
dic = {'name':'小明','job':'程序员'} print(dic.popitem()) #结果为('job','程序员') print(dic) #结果为:{'name': '小明','age': 29}
dic = {'name':'小明','job':'程序员'} del dic['job'] print(dic) #结果为:{'name': '小明','age': 29} del dic['job'] print(dic) #此时字典里已经没有job值,则会报错:KeyError: 'job'
dic = {'name':'小明','job':'程序员'} dic.clear() print(dic) #结果为:{}
dic = {'name':'小明','job':'程序员'} del dic print(dic) #此时dic已经被删除,不存在了,所以会报错:NameError: name 'dic' is not defined 四、修改字典元素的方法
dic = {'name':'小明','job':'程序员'} dic['addr'] = '广州' #此时没有addr的key 则会添加 print(dic) #输出结果为:{'name': '小明','addr': '广州'} dic['addr'] = '深圳' #此时以及有addr的key 则会修改 print(dic) #输出结果为:{'name': '小明','addr': '深圳'}
dic = {'name':'小明','job':'程序员'} dic.update({'addr':'广州'}) print(dic) #结果为:{'name': '小明','addr': '广州'} 如果传入的字典里有部分key与原字典相同,则该key所对应的值会被覆盖,其他没有的key则会被添加,如下: dic = {'name':'小明','job':'程序员'} dic.update({'addr':'广州','name':'小芳'}) print(dic) #结果为:{'name': '小芳','addr': '广州'} 五、查询字典元素的方法
dic = {'name':'小明','job':'程序员'} print(dic['name']) #结果为:小明 print(dic['addr']) #搜索不到,会报错。KeyError: 'addr'
dic = {'name':'小明','job':'程序员'} print(dic.get('name')) #结果为:小明 print(dic.get('job')) #结果为:程序员 print(dic.get('addr','找不到该数据')) #结果为:找不到该数据 六、用循环的方法来遍历字典
dic = {'name':'小明','job':'程序员'} print(dic.keys()) # 结果:dict_keys(['name','age','job']) for key in dic.keys(): print(key) # 结果为: # name # age # job
dic = {'name':'小明','job':'程序员'} print(dic.values()) # 结果:dict_values(['小明',29,'程序员']) for value in dic.values(): print(value) # 结果为: # 小明 # 29 # 程序员
dic = {'name':'小明','job':'程序员'} print(dic.items()) # 结果:dict_items([('name','小明'),('age',29),('job','程序员')]) for k,v in dic.items(): print(k,v) # 结果为: # name 小明 # age 29 # job 程序员 原文链接:https://www.cnblogs.com/fu-yong/p/8073912.html (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |