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

概述

序列是按编号对元素进行引用;另一种数据结构用名字来引用值——映射(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映射之字典定义创建字典、使用字典所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部