我是靠谱客的博主 淡淡绿草,这篇文章主要介绍Python映射之字典定义创建字典、使用字典,现在分享给大家,希望可以做个参考。

序列是按编号对元素进行引用;另一种数据结构用名字来引用值——映射(mapping)。字典是Python中唯一内建的映射类型。字典中的值没有特定的顺序,但是有特定的键(Key)。键可以是数字、字符串甚至是元组。

定义

字典中的键-值对(key:value)作为一项以逗号隔开,放在大括号内。

创建字典、使用字典

1.直接创建

复制代码
1
2
3
4
>>> phonebook = {'Ami':'1211','Bli':'2322','Cro':'3211'} >>> phonebook['Ami'] '1211' >>>

2.dict函数建立字典

dict函数(和list、tuple和str一样,是一种类型)可以通过其他映射或者(键:值)对的序列建立字典。
复制代码
1
2
3
4
5
6
>>> items = [('name','Tom'),('age','41')] >>> d = dict(items) >>> d {'age': '41', 'name': 'Tom'} >>> d['name'] 'Tom'
dict函数还可以用关键字参数创建字典。
复制代码
1
2
3
>>> d = dict(name='Tom',age='42') >>> d {'age': '42', 'name': 'Tom'}
dict函数也可以以映射为参数,建立一个项与映射相同的字典;若参数为空,则建立空字典。

3.基本字典操作

字典的基本行为在很多方面和序列(sequence)类似。
复制代码
1
2
>>> d['age'] #通过键来访问值 序列是用索引访问值 '42'
复制代码
1
2
>>> d['age'] = 40 #通过键来赋值 序列用索引 >>>
复制代码
1
2
>>> del d['name'] #通过del删除键-值对 >>>
复制代码
1
2
3
>>> 'age' in d #用in查询成员资格 字典用键,序列用值 True >>>
复制代码
1
2
3
4
5
6
>>> d #自动添加:在用不存在的键赋值时,字典会自动将该键添加到字典中,并进行赋值 {'age': 40} >>> d['name'] = 'Tom' >>> d {'age': 40, 'name': 'Tom'} >>>
键类型:键可以是任意不可变类型。

4.字典的格式化字符串

复制代码
1
2
3
4
>>> info = {'name':'Ami','sex':'girl'} >>> '%(name)s is a %(sex)s' % info 'Ami is a girl' >>>
此时,字典是只以字符串作为键的。

5.字典方法

(1).clear

复制代码
1
2
3
4
5
6
>>> d #清空字典 {'age': 40, 'name': 'Tom'} >>> d.clear() >>> d {} >>>

(2).copy

复制代码
1
2
3
4
5
6
7
>>> x = {'name':'admin','password':'888'} #返回一个有相同键-值对的字典(这个方法实现的是浅复制(shallow copy),即x,y两个引用指向同一个对象) >>> x {'password': '888', 'name': 'admin'} >>> y = x.copy() >>> y {'password': '888', 'name': 'admin'} >>>
若要实现深复制(deep copy),可以用copy模块的deepcopy函数完成。

(3).fromkeys

复制代码
1
2
3
4
5
6
7
8
9
>>> {}.fromkeys(['name','age']) #用给定键创建字典,并可指定初始化值 {'age': None, 'name': None} >>> >>> dict.fromkeys(['name','age']) {'age': None, 'name': None} >>> >>> dict.fromkeys(['name','age'],'unknown') {'age': 'unknown', 'name': 'unknown'} >>>

(4).get

复制代码
1
2
3
4
5
6
7
8
>>> d = {'name':'Tom'} #通过键值访问值,若不存在该键,以自定义值返回信息 >>> d {'name': 'Tom'} >>> d.get('name') 'Tom' >>> d.get('age') >>> d.get('age','N/A') 'N/A'

(5).has_key

复制代码
1
2
3
4
5
6
7
>>> d = {} #和in操作符功能相同 >>> d.has_key('name') False >>> d['name'] = 'Tom' >>> d.has_key('name') True >>>

(6).items和iteritems

复制代码
1
2
3
4
5
6
7
8
9
>>> d = {'title':'Python Web Site','url':'http://www.python.org'} #items将字典所有项以列表方式返回,列表中的每一项都表示为(键,值)对的形式 >>> d.items() [('url', 'http://www.python.org'), ('title', 'Python Web Site')] >>> >>> it = d.iteritems() #iteritems返回一个迭代器对象 >>> it <dictionary-itemiterator object at 0x0000000003327778> >>> list(it) [('url', 'http://www.python.org'), ('title', 'Python Web Site')]

(7)keys和iterkeys

keys方法将字典中的键以列表形式返回,而iterkeys则返回键的迭代器。

(8).pop

复制代码
1
2
3
4
5
6
7
8
>>> d = {'x':1,'y':2} #pop方法用来获得对应于给定键的值,然后将这个键-值对从字典中移除 >>> d {'y': 2, 'x': 1} >>> d.pop('x') 1 >>> d {'y': 2} >>>

(9).popitem

复制代码
1
2
3
4
5
6
7
8
>>> d = {'title':'Python Web Site','url':'http://www.python.org'} #返回随机的项,并移除该项 >>> d {'url': 'http://www.python.org', 'title': 'Python Web Site'} >>> d.popitem() ('url', 'http://www.python.org') >>> d {'title': 'Python Web Site'} >>>

(10).setdefault

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
>>> d #获取指定键的值;若该键不存在,添加该键并以所给参数为该键赋值,若不指定参数,赋值None {} >>> d.setdefault('name','N/A') 'N/A' >>> d {'name': 'N/A'} >>> d['age'] = 40 >>> d.setdefault('age',0) 40 >>> d.setdefault('num') >>> d {'age': 40, 'num': None, 'name': 'N/A'} >>>

(11).update

复制代码
1
2
3
4
5
6
7
8
9
10
11
>>> d = { #update利用一个字典更新字典,提高的字典中的项会被添加到旧字典中,若有相同的键则会进行覆盖 'title':'Python Web Site', 'url':'http://www.python.org', } >>> d {'url': 'http://www.python.org', 'title': 'Python Web Site'} >>> x = {'title':'Python Language Website'} >>> d.update(x) >>> d {'url': 'http://www.python.org', 'title': 'Python Language Website'} >>>

(12).values和itervalues

values方法以列表的形式返回字典中的值,itervalues返回值的迭代器。

最后

以上就是淡淡绿草最近收集整理的关于Python映射之字典定义创建字典、使用字典的全部内容,更多相关Python映射之字典定义创建字典、使用字典内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(55)

评论列表共有 0 条评论

立即
投稿
返回
顶部