python学习笔记:字典的使用示例详解


Posted in Python onJune 13, 2014

经典字典使用函数
dict:通过其他映射(比如其他字典)或者(键,值)这样的序列对建立字典。当然dict成为函数不是十分确切,它本质是一种类型。如同list。

items=[('name','zhang'),('age',42)]
d=dict(items)
d['name']

len(d):返回项的数量
d[k]:返回键k上面的值。
d[k]=v:将k对应的值设置为k。
del d[k]:删除字典中的这一项。
k in d:检查d中是否含有键为k的项。注:只能查找键,不能查找值。
简单的电话本示例:

# A simple database
# A dictionary with person names as keys. Each person is represented as
# another dictionary with the keys 'phone' and 'addr' referring to their phone
# number and address, respectively.
people = {
    'Alice': {
        'phone': '2341',
        'addr': 'Foo drive 23'
    },
    'Beth': {
        'phone': '9102',
        'addr': 'Bar street 42'
    },
    'Cecil': {
        'phone': '3158',
        'addr': 'Baz avenue 90'
    }
}
# Descriptive labels for the phone number and address. These will be used
# when printing the output.
labels = {
    'phone': 'phone number',
    'addr': 'address'
}
name = raw_input('Name: ')
# Are we looking for a phone number or an address?
request = raw_input('Phone number (p) or address (a)? ')
# Use the correct key:
if request == 'p': key = 'phone'
if request == 'a': key = 'addr'
# Only try to print information if the name is a valid key in
# our dictionary:
if name in people: print "%s's %s is %s." % \
    (name, labels[key], people[name][key])

字典方法
clear:清除字典中的所有项。

x.clear()

copy:浅复制字典。

y=x.copy()

deepcopy:同样是复制,来看看和copy的区别。

from copy import deepcopy
d={}
d['names']=['as','sa']
c=d.copy()
dc=deepcopy(d)
d['names'].append('ad')

fromkeys:给指定的键建立新的字典,每个键默认对应的值为none.
{}.fromkeys(['name','age'])

get:更为宽松的访问字典项的方法。
d.get('name')

# A simple database using get()
# Insert database (people) from Listing 4-1 here.
labels = {
    'phone': 'phone number',
    'addr': 'address'
}
name = raw_input('Name: ')
# Are we looking for a phone number or an address?
request = raw_input('Phone number (p) or address (a)? ')
# Use the correct key:
key = request # In case the request is neither 'p' nor 'a'
if request == 'p': key = 'phone'
if request == 'a': key = 'addr'
# Use get to provide default values:
person = people.get(name, {})
label = labels.get(key, key)
result = person.get(key, 'not available')
print "%s's %s is %s." % (name, label, result)

has_key:检查字典中是否含有给定的键。d.haos_key()。值返回True ,False。

items:将所有字典项目一列表方式返回。

iteritems:方法大致相同,但是会返回一个迭代器而不是列表。

keys:将字典中的键以列表的方式返回。(注意区分和items的区别)

iterkeys:返回针对键的迭代器。

pop:获得对应给定键的值,然后将键-值对删除。

popitem:弹出一个随机的项,

setdefault:既能获得与给定键相关的值,又能在字典中不含有该键的情况下设定相应的键值。

update:用一个字典更新另一个字典。

d={'1':'d','2':'s','3':'a'}
x={'1','jk'}
d.update(x)

values:以列表的形式返回字典中的值。

itervalues:返回值得迭代器。

Python 相关文章推荐
在Python编程过程中用单元测试法调试代码的介绍
Apr 02 Python
Python实现快速排序和插入排序算法及自定义排序的示例
Feb 16 Python
深入理解 Python 中的多线程 新手必看
Nov 20 Python
python中利用xml.dom模块解析xml的方法教程
May 24 Python
通过Python 获取Android设备信息的轻量级框架
Dec 18 Python
python基础教程项目二之画幅好画
Apr 02 Python
python 并发编程 阻塞IO模型原理解析
Aug 20 Python
python logging日志模块原理及操作解析
Oct 12 Python
Python高级特性——详解多维数组切片(Slice)
Nov 26 Python
python-numpy-指数分布实例详解
Dec 07 Python
关于Tensorflow 模型持久化详解
Feb 12 Python
Django静态文件加载失败解决方案
Aug 26 Python
Python urlopen()函数 示例分享
Jun 12 #Python
python教程之用py2exe将PY文件转成EXE文件
Jun 12 #Python
Python struct模块解析
Jun 12 #Python
深度剖析使用python抓取网页正文的源码
Jun 11 #Python
python k-近邻算法实例分享
Jun 11 #Python
浅析python 内置字符串处理函数的使用方法
Jun 11 #Python
python使用正则表达式检测密码强度源码分享
Jun 11 #Python
You might like
ADODB的数据库封包程序库
2006/12/31 PHP
解析link_mysql的php版
2013/06/30 PHP
微信公众平台接口开发入门示例
2014/12/24 PHP
php实现的一段简单概率相关代码
2016/05/30 PHP
thinkphp 5框架实现登陆,登出及session登陆状态检测功能示例
2019/10/10 PHP
laravel 解决Eloquent ORM的save方法无法插入数据的问题
2019/10/21 PHP
gearman中任务的优先级和返回状态实例分析
2020/02/27 PHP
菜单效果
2006/10/14 Javascript
JavaScript this 深入理解
2009/07/30 Javascript
基于jQuery的获得各种控件Value的方法
2010/11/19 Javascript
基于javascript制作经典传统的拼图游戏
2016/03/22 Javascript
javascript拖拽应用实例
2016/03/25 Javascript
BootStrap实现文件上传并带有进度条效果
2017/09/11 Javascript
删除table表格行的实例讲解
2017/09/21 Javascript
bootstrap table方法之expandRow-collapseRow展开或关闭当前行数据
2020/08/09 Javascript
使用cropper.js裁剪头像的实例代码
2017/09/29 Javascript
react-native fetch的具体使用方法
2017/11/01 Javascript
在 React、Vue项目中使用SVG的方法
2018/02/09 Javascript
解决Mac node版本升级失败的问题
2018/05/16 Javascript
vue.js层叠轮播效果的实例代码
2018/11/08 Javascript
Element PageHeader页头的使用方法
2020/07/26 Javascript
[06:57]DOTA2-DPC中国联赛 正赛 Ehome vs PSG.LGD 选手采访
2021/03/11 DOTA
python发送伪造的arp请求
2014/01/09 Python
用Python从零实现贝叶斯分类器的机器学习的教程
2015/03/31 Python
详解Python中for循环的使用方法
2015/05/14 Python
python实现矩阵乘法的方法
2015/06/28 Python
Python urls.py的三种配置写法实例详解
2017/04/28 Python
python中正则表达式的使用方法
2018/02/25 Python
python实现验证码识别功能
2018/06/07 Python
python实现弹窗祝福效果
2019/04/07 Python
python常见字符串处理函数与用法汇总
2019/10/30 Python
Python Selenium操作Cookie的实例方法
2021/02/28 Python
德国专业木制品经销商:Holz-Direkt24
2019/12/26 全球购物
酒店餐厅2014重阳节活动策划方案
2014/09/16 职场文书
2015秋季新学期开学寄语
2015/05/28 职场文书
电子表的操作介绍说明书
2019/10/28 职场文书