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的Flask框架中验证注册用户的Email的方法
Sep 02 Python
Python解惑之True和False详解
Apr 24 Python
基于Python3 逗号代码 和 字符图网格(详谈)
Jun 22 Python
Python实现的字典值比较功能示例
Jan 08 Python
Python实现的维尼吉亚密码算法示例
Apr 12 Python
Python3.6使用tesseract-ocr的正确方法
Oct 17 Python
简单了解python 生成器 列表推导式 生成器表达式
Aug 22 Python
Pytorch提取模型特征向量保存至csv的例子
Jan 03 Python
在python下实现word2vec词向量训练与加载实例
Jun 09 Python
Python selenium如何打包静态网页并下载
Aug 12 Python
python代数式括号有效性检验示例代码
Oct 04 Python
Opencv 图片的OCR识别的实战示例
Mar 02 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
phpmyadmin出现Cannot start session without errors问题解决方法
2014/08/14 PHP
php分页函数完整实例代码
2014/09/22 PHP
php实现概率性随机抽奖代码
2016/01/02 PHP
CentOS 7.2 下编译安装PHP7.0.10+MySQL5.7.14+Nginx1.10.1的方法详解(mini版本)
2016/09/01 PHP
PHP获取当前执行php文件名的代码
2017/03/02 PHP
用js判断用户浏览器是否是XP SP2的IE6
2007/03/08 Javascript
javascript 写类方式之六
2009/07/05 Javascript
原生javascript兼容性测试实例
2013/07/01 Javascript
javascript对话框使用方法(警告框 javascript确认框 提示框)
2014/01/07 Javascript
JS(JQuery)操作Array的相关方法介绍
2014/02/11 Javascript
PHP+MySQL+jQuery随意拖动层并即时保存拖动位置实例讲解
2015/10/09 Javascript
JS+CSS实现的竖向简洁折叠菜单效果代码
2015/10/22 Javascript
Vue.js实现一个自定义分页组件vue-paginaiton
2016/09/05 Javascript
jQuery使用siblings获取某元素所有同辈(兄弟姐妹)元素用法示例
2017/01/30 Javascript
JS控件bootstrap datepicker使用方法详解
2017/03/25 Javascript
angular 用拦截器统一处理http请求和响应的方法
2017/06/08 Javascript
开发用到的js封装方法(20种)
2018/10/12 Javascript
详解利用eventemitter2实现Vue组件通信
2019/11/04 Javascript
微信小程序实现上拉加载功能示例【加载更多数据/触底加载/点击加载更多数据】
2020/05/29 Javascript
vue 防止页面加载时看到花括号的解决操作
2020/11/09 Javascript
[02:00]最后,我终于出了辉耀
2018/03/27 DOTA
简介Django中内置的一些中间件
2015/07/24 Python
详解Python中dict与set的使用
2015/08/10 Python
python3利用smtplib通过qq邮箱发送邮件方法示例
2017/12/03 Python
Python+selenium 获取浏览器窗口坐标、句柄的方法
2018/10/14 Python
Python发送邮件测试报告操作实例详解
2018/12/08 Python
python实现将列表中各个值快速赋值给多个变量
2020/04/02 Python
Foot Locker意大利官网:全球领先的运动鞋和服装零售商
2017/05/30 全球购物
英国Office鞋店德国网站:在线购买鞋子、靴子和运动鞋
2018/12/19 全球购物
Java Servlet的主要功能和作用是什么
2014/02/14 面试题
广告学专业应届生求职信
2013/10/01 职场文书
医生学习党的群众路线教育实践活动心得体会
2014/11/03 职场文书
公司财务经理岗位职责
2015/04/08 职场文书
开会迟到检讨书范文
2015/05/06 职场文书
运动会广播稿300字
2015/08/19 职场文书
Nginx 常用配置
2022/05/15 Servers