python之字典方法
通过名称来访问各个值的数据结构,这种数据结构称为映射。
字典是python中唯一的映射类型。
一、创建字典
phone = {'xiaoming':'123','jack':'3232131132'}
dict_1 = {} #空字典
二、函数dict
d = dict(name = 'jack',age = 33)
返回
>>d {'age':33,'name':'jack'}
三、字典的方法
1)clear
定义:清除
函数:dict.clear()
代码:
1 dic = {"name":"solo",'age':20,'hobby':'bastkball'} 2 d = dic.clear() 3 print(d)
打印结果:
1 None
2)copy
定义:copy一个字典,并返回一个新字典,其包含的键值对与原来的字典相同。
函数:dict.copy()
代码:
1 dic = {"name":"solo",'age':20,'hobby':'bastkball'} 2 d = dic.copy() 3 print(d) 4 print(dic)
结果:
{'name': 'solo', 'age': 20, 'hobby': 'bastkball'} {'name': 'solo', 'age': 20, 'hobby': 'bastkball'}
修改copy后的新字典,不会改变原字典的值(浅复制)
替换时,原件不受影响,但是修改副本的值,原件也会跟着改变
代码:
1 dic = {"name":"solo",'age':20,'hobby':'bastkball'} 2 d = dic.copy() 3 d['name'] = 'jack' 4 print(d) 5 print(dic)
结果:
1 {'name': 'jack', 'age': 20, 'hobby': 'bastkball'} 2 {'name': 'solo', 'age': 20, 'hobby': 'bastkball'}
3)fromkeys
定义:方法fromkeys创建一个新字典,其中包含指定的键,且每个键对应的值都是None
函数:dict.fromkeys(['key','key'])
代码:
1 d = dict.fromkeys(['name','age']) 2 print(d)
结果:
1 {'name': None, 'age': None}
如果不使用默认值None,也可以指定值
函数:
dict.fromkeys([key,key],'value')
代码:
1 d = dict.fromkeys(['name','age'],'unknow') 2 print(d)
结果:
1 {'name': 'unknow', 'age': 'unknow'}
如果提前定义了一个空字典,再用上述方法会是什么效果?
代码:
1 d = {} 2 dic_2 = d.fromkeys('name') 3 print(dic_2)
结果:
1 {'n': None, 'a': None, 'm': None, 'e': None}
4)get
定义:访问字典项,如果字典中灭有项,将引发错误。
函数:dict.get()
代码:
1 d = {} 2 dic = d.get('name') 3 print(dic) #此种方式不会报错 4 print(d['name']) #打印空字典中的键,会引发错误
结果:
1 None 2 print(d['name']) 3 KeyError: 'name'
另外get方法除了查询没有的键时不报错,也可以让其返回指定的‘值’
函数:dict.get(keys,''N/A)
代码及结果:
1 dic = {"name":"solo",'age':20,'hobby':'bastkball'} 2 d = dic.get('lll','N/A') 3 print(d)
N/A
5)items
定义:返回一个包含所有字典项的列表,其中每个元素都为(key,value)的形式。字典项在列表中排序不确定。
函数:dict.items()
代码:
1 dic = {"name":"solo",'age':20,'hobby':'bastkball'} 2 d = dic.items() 3 print(d)
结果:
1 dict_items([('name', 'solo'), ('age', 20), ('hobby', 'bastkball')])
6)keys
定义:方法keys返回一个字典视图,其中包含指定字典中的键。
函数:dict.keys()
代码:
1 dic = {"name":"solo",'age':20,'hobby':'bastkball'} 2 d = dic.keys() 3 print(d)
结果:
返回的均是字典中的 键
1 dict_keys(['name', 'age', 'hobby'])
同理,应该还有方法 values,返回的应该是字典中的左右值。
实例:
dic = {"name":"solo",'age':20,'hobby':'bastkball'} d = dic.values() print(d)
结果:
1 dict_values(['solo', 20, 'bastkball'])
7)pop
定义:用于获取与指定键相关联的值,并将该键-值对从字典中删除
函数:dict.pop(keys)
代码:
1 dic = {"name":"solo",'age':20,'hobby':'bastkball'} 2 d = dic.pop('name') 3 print(d) 4 print(dic)
代码:
1 solo 2 {'age': 20, 'hobby': 'bastkball'}
8)popitem
定义:随机删除字典中的键值对,并返回删除的键值对。
函数:dict.popitem
代码:
1 dic = {"name":"solo",'age':20,'hobby':'bastkball'} 2 d = dic.popitem() #删除字典中的键值对(随机),并返回删除的键值对 3 print(d) 4 print(dic)
结果:
1 ('hobby', 'bastkball') 2 {'name': 'solo', 'age': 20}
9)setdefault
定义:方法与get有点类似。差异点是当setdefault()方法查询的键,会自动放到字典中。
函数;dict.setdefault(key,defaulat)
代码:
1.
1 dic = {} 2 d = dic.setdefault('name') 3 print(d) 4 print(dic)
2.
dic = {} d = dic.setdefault('name','N/A') print(d) print(dic)
结果:
1.
1 None 2 {'name': None}
2.
1 N/A 2 {'name': 'N/A'}
10)update
定义:使用一个字典中的项来更新到另一个字典中;如果当前字典包含相同的项,就替换它。
函数:dict.update()
代码:
1 dic = {"name":"solo",'age':20,'hobby':'bastkball'} 2 dic_1 = {'url':'www.python.cn'} 3 dic.update(dic_1) 4 print(dic)
结果:
1 {'name': 'solo', 'age': 20, 'hobby': 'bastkball', 'url': 'www.python.cn'}
反过来试一下:
1 dic = {"name":"solo",'age':20,'hobby':'bastkball'} 2 dic_1 = {'url':'www.python.cn'} 3 dic_1.update(dic) 4 print(dic_1)
结果:
1 {'url': 'www.python.cn', 'name': 'solo', 'age': 20, 'hobby': 'bastkball'}
11)values
定义:返回一个由字典中值组成的字典视图,不同于方法keys,方法values 返回的视图可能包含重复的值。
函数:dict.values()
代码:
1 d = {} 2 d[1] = 1 3 d[2] = 2 4 d[3] = 3 5 d[4] = 4 6 d[5] = 5 7 dic = d.values() 8 dic_1 = d.keys() 9 print(dic) 10 print(dic_1)
结果:
1 dict_values([1, 2, 3, 4, 5]) 2 dict_keys([1, 2, 3, 4, 5])