Python基础之字典
Posted foxshu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python基础之字典相关的知识,希望对你有一定的参考价值。
1.创建字典
字典中每个值都有一个唯一的key,key需要被哈希,可以是可以是数字、字符串、元组;用大括号‘{}‘将内容扩起来,且是无序的。
1 info = {‘name‘:‘fox‘,‘age‘:16,‘work‘:‘it‘} 2 print(info) 3 结果: 4 {‘age‘: 16, ‘work‘: ‘it‘, ‘name‘: ‘fox‘}
2.增
通过需要增加的key和值,直接赋值给字典,即可添加元素。
1 info = {‘name‘:‘fox‘,‘age‘:16,‘work‘:‘it‘} 2 info[‘sex‘] = ‘M‘ 3 print(info) 4 结果: 5 {‘name‘: ‘fox‘, ‘age‘: 16, ‘work‘: ‘it‘, ‘sex‘: ‘M‘}
3.删
1)info.pop()删除指定key的键值对,如果所删除的key不存在则报错。
1 info = {‘name‘:‘fox‘,‘age‘:16,‘work‘:‘it‘} 2 info.pop(‘work‘) 3 print(info) 4 结果: 5 {‘name‘: ‘fox‘, ‘age‘: 16}
2)info.clear()清除所有键值对
1 info = {‘name‘:‘fox‘,‘age‘:16,‘work‘:‘it‘} 2 info.clear() 3 print(info) 4 结果: 5 {}
4.改
1)同增类似,直接通过key的修改其对应的值,因为是无序无法查找其位置。
1 info = {‘name‘:‘fox‘,‘age‘:16,‘work‘:‘it‘} 2 info[‘work‘] = ‘ui‘ 3 print(info) 4 结果: 5 {‘work‘: ‘ui‘, ‘age‘: 16, ‘name‘: ‘fox‘}
2)info.update()当另一个字典中有当前字典的key,则修改,像‘age‘中的16改成18;如果另一个字典中再当前字典中没有的key,则将键值对添加到当前字典,像‘sex‘:‘M‘。
1 info = {‘name‘:‘fox‘,‘age‘:16,‘work‘:‘it‘} 2 info1 = {‘age‘:18,‘sex‘:‘M‘} 3 info.update(info1) 4 print(info) 5 结果: 6 {‘work‘: ‘it‘, ‘age‘: 18, ‘name‘: ‘fox‘, ‘sex‘: ‘M‘}
5.查
1)info.get()根据指定key查找对应的值
1 info = {‘name‘:‘fox‘,‘age‘:16,‘work‘:‘it‘} 2 print(info.get(‘age‘)) 3 结果: 4 16
2)info.setdefault()如果key存在,则读出该键对应的值;如果key不存在,则以该值作为字典的key,None作为值添加到字典中。
1 info = {‘name‘:‘fox‘,‘age‘:16,‘work‘:‘it‘} 2 info.setdefault(‘work‘) 3 print(info.setdefault(‘work‘)) 4 print(info) 5 info.setdefault(‘ff‘) 6 print(info.setdefault(‘ff‘)) 7 print(info) 8 结果: 9 it 10 {‘work‘: ‘it‘, ‘age‘: 16, ‘name‘: ‘fox‘} 11 None 12 {‘work‘: ‘it‘, ‘age‘: 16, ‘name‘: ‘fox‘, ‘ff‘: None}
6.遍历字典key和值
1)info.keys()遍历出字典info中的key
1 info = {‘name‘:‘fox‘,‘age‘:16,‘work‘:‘it‘} 2 print(info.keys()) 3 结果: 4 dict_keys([‘age‘, ‘work‘, ‘name‘])
2)info.values()遍历出字典info中的值
1 info = {‘name‘:‘fox‘,‘age‘:16,‘work‘:‘it‘} 2 print(info.values()) 3 结果: 4 dict_values([‘it‘, 16, ‘fox‘])
3)info.item()通过for方法可将key和值都遍历出来
1 info = {‘name‘:‘fox‘,‘age‘:16,‘work‘:‘it‘} 2 for key,value in info.items(): 3 print(key,‘:‘,value) 4 结果: 5 age : 16 6 name : fox 7 work : it
7.OrderedDict类
OrderedDict类可以将字典变得有序,正常情况下字典是无序的,一个普通的字典,如果键值对一样,即使顺序不一样,那么两个字典是相等的。
1 info = {‘name‘:‘fox‘,‘age‘:16,‘work‘:‘it‘} 2 info1 = {‘age‘:16,‘work‘:‘it‘,‘name‘:‘fox‘} 3 print(info == info1) 4 结果: 5 True
使用OrderedDict()方法后,键值对一样,但是顺序不同时,不相等;OrderedDict()方法是collections模块的方法,不是内置方法,故需要导入,即(from collections import OrderedDict)指导入collections模块的OrderedDict类。
1 from collections import OrderedDict 2 info = {‘name‘:‘fox‘,‘age‘:16,‘work‘:‘it‘} 3 info1 = {‘age‘:16,‘work‘:‘it‘,‘name‘:‘fox‘} 4 info1 = OrderedDict() 5 print(info == info1) 6 结果: 7 False
以上是关于Python基础之字典的主要内容,如果未能解决你的问题,请参考以下文章