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])
原文地址:https://www.cnblogs.com/aszeno/p/10226917.html