概述
序列是按编号对元素进行引用;另一种数据结构用名字来引用值——映射(mapping)。字典是Python中唯一内建的映射类型。字典中的值没有特定的顺序,但是有特定的键(Key)。键可以是数字、字符串甚至是元组。
定义
字典中的键-值对(key:value)作为一项以逗号隔开,放在大括号内。
创建字典、使用字典
1.直接创建
>>> phonebook = {'Ami':'1211','Bli':'2322','Cro':'3211'}
>>> phonebook['Ami']
'1211'
>>>
2.dict函数建立字典
dict函数(和list、tuple和str一样,是一种类型)可以通过其他映射或者(键:值)对的序列建立字典。
>>> items = [('name','Tom'),('age','41')]
>>> d = dict(items)
>>> d
{'age': '41', 'name': 'Tom'}
>>> d['name']
'Tom'
dict函数还可以用关键字参数创建字典。
>>> d = dict(name='Tom',age='42')
>>> d
{'age': '42', 'name': 'Tom'}
dict函数也可以以映射为参数,建立一个项与映射相同的字典;若参数为空,则建立空字典。
3.基本字典操作
字典的基本行为在很多方面和序列(sequence)类似。
>>> d['age'] #通过键来访问值 序列是用索引访问值
'42'
>>> d['age'] = 40 #通过键来赋值 序列用索引
>>>
>>> del d['name'] #通过del删除键-值对
>>>
>>> 'age' in d #用in查询成员资格 字典用键,序列用值
True
>>>
>>> d #自动添加:在用不存在的键赋值时,字典会自动将该键添加到字典中,并进行赋值
{'age': 40}
>>> d['name'] = 'Tom'
>>> d
{'age': 40, 'name': 'Tom'}
>>>
键类型:键可以是任意不可变类型。
4.字典的格式化字符串
>>> info = {'name':'Ami','sex':'girl'}
>>> '%(name)s is a %(sex)s' % info
'Ami is a girl'
>>>
此时,字典是只以字符串作为键的。
5.字典方法
(1).clear
>>> d #清空字典
{'age': 40, 'name': 'Tom'}
>>> d.clear()
>>> d
{}
>>>
(2).copy
>>> 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
>>> {}.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
>>> d = {'name':'Tom'} #通过键值访问值,若不存在该键,以自定义值返回信息
>>> d
{'name': 'Tom'}
>>> d.get('name')
'Tom'
>>> d.get('age')
>>> d.get('age','N/A')
'N/A'
(5).has_key
>>> d = {} #和in操作符功能相同
>>> d.has_key('name')
False
>>> d['name'] = 'Tom'
>>> d.has_key('name')
True
>>>
(6).items和iteritems
>>> 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
>>> d = {'x':1,'y':2} #pop方法用来获得对应于给定键的值,然后将这个键-值对从字典中移除
>>> d
{'y': 2, 'x': 1}
>>> d.pop('x')
1
>>> d
{'y': 2}
>>>
(9).popitem
>>> 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
>>> 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
>>> 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映射之字典定义创建字典、使用字典所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复