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备份文件的脚本
Aug 11 Python
使用python加密自己的密码
Aug 04 Python
Django中url的反向查询的方法
Mar 14 Python
深入分析python数据挖掘 Json结构分析
Apr 21 Python
pip命令无法使用的解决方法
Jun 12 Python
django解决跨域请求的问题
Nov 11 Python
使用apiDoc实现python接口文档编写
Nov 19 Python
Python列表切片常用操作实例解析
Dec 16 Python
NumPy统计函数的实现方法
Jan 21 Python
Django实现将views.py中的数据传递到前端html页面,并展示
Mar 16 Python
Python 无限级分类树状结构生成算法的实现
Jan 21 Python
golang中的空接口使用详解
Mar 30 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
虫族 Zerg 历史背景
2020/03/14 星际争霸
[转帖]PHP世纪万年历
2006/12/06 PHP
国外比较好的几个的Php开源建站平台小结
2010/04/22 PHP
一个漂亮的php验证码类(分享)
2013/08/06 PHP
PHP网站自动化配置的实现方法(必看)
2017/05/27 PHP
PHP实现微信退款的方法示例
2019/03/26 PHP
细说javascript函数从函数的构成开始
2013/08/29 Javascript
项目中常用的JS方法整理
2015/01/30 Javascript
js实现使用鼠标拖拽切换图片的方法
2015/05/04 Javascript
javascript仿京东导航左侧分类导航下拉菜单效果
2020/11/25 Javascript
jQuery学习笔记之回调函数
2016/08/15 Javascript
Bootstrap BootstrapDialog使用详解
2017/02/17 Javascript
从零学习node.js之文件操作(三)
2017/02/21 Javascript
原生JS检测CSS3动画是否结束的方法详解
2019/01/27 Javascript
微信小程序如何获取群聊的openGid以及名称详解
2019/07/17 Javascript
解决vue cli使用typescript后打包巨慢的问题
2019/09/30 Javascript
Vue页面刷新记住页面状态的实现
2019/12/27 Javascript
javascript实现留言板功能
2020/02/08 Javascript
JS数组转字符串实现方法解析
2020/09/04 Javascript
从零开始用webpack构建一个vue3.0项目工程的实现
2020/09/24 Javascript
在vue中动态修改css其中一个属性值操作
2020/12/07 Vue.js
Scrapy的简单使用教程
2017/10/24 Python
Django实战之用户认证(用户登录与注销)
2018/07/16 Python
pandas.dataframe按行索引表达式选取方法
2018/10/30 Python
在python环境下运用kafka对数据进行实时传输的方法
2018/12/27 Python
Django urls.py重构及参数传递详解
2019/07/23 Python
Python编写打字训练小程序
2019/09/26 Python
Django 404、500页面全局配置知识点详解
2020/03/10 Python
详解pandas获取Dataframe元素值的几种方法
2020/06/14 Python
python中numpy.empty()函数实例讲解
2021/02/05 Python
萌新HTML5 入门指南(二)
2020/11/09 HTML / CSS
医生自荐信
2013/10/11 职场文书
求职简历中自我评价
2014/01/28 职场文书
教师见习期自我鉴定
2014/04/28 职场文书
食品安全主题班会
2015/08/13 职场文书
解决linux下redis数据库overcommit_memory问题
2022/02/24 Redis