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中字典(dict)和列表(list)的排序方法实例
Jun 16 Python
Python函数中定义参数的四种方式
Nov 30 Python
Python迭代器和生成器介绍
Mar 06 Python
Python聚类算法之凝聚层次聚类实例分析
Nov 20 Python
Python中创建字典的几种方法总结(推荐)
Apr 27 Python
使用tensorflow实现AlexNet
Nov 20 Python
Python装饰器用法实例总结
May 26 Python
使用Python实现租车计费系统的两种方法
Sep 29 Python
python傅里叶变换FFT绘制频谱图
Jul 19 Python
python函数定义和调用过程详解
Feb 09 Python
python中如何进行连乘计算
May 28 Python
python 破解加密zip文件的密码
Apr 22 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
php4的session功能评述(三)
2006/10/09 PHP
php mysql 判断update之后是否更新了的方法
2012/01/10 PHP
PHP设计模式之调解者模式的深入解析
2013/06/13 PHP
php内核解析:PHP中的哈希表
2014/01/30 PHP
php实现改变图片直接打开为下载的方法
2015/04/14 PHP
php实现批量删除挂马文件及批量替换页面内容完整实例
2016/07/08 PHP
php封装的mysqli类完整实例
2016/10/18 PHP
php中分页及SqlHelper类用法实例
2017/01/12 PHP
js Flash插入函数免激活代码
2009/03/31 Javascript
javascript hasFocus使用实例
2010/06/29 Javascript
jQuery 源码分析笔记(5) jQuery.support
2011/06/19 Javascript
javascript中键盘事件用法实例分析
2015/01/30 Javascript
JS实现的通用表单验证插件完整实例
2015/08/20 Javascript
实例详解angularjs和ajax的结合使用
2015/10/22 Javascript
JavaScript递归操作实例浅析
2016/10/31 Javascript
用 js 的 selection range 操作选择区域内容和图片
2017/04/18 Javascript
Angular2.js实现表单验证详解
2017/06/23 Javascript
JavaScript异步上传图片文件的实例代码
2017/07/04 Javascript
自制简易打赏功能的实例
2017/09/02 Javascript
微信小程序之批量上传并压缩图片的实例代码
2018/07/05 Javascript
Angular PWA使用的Demo示例
2019/01/31 Javascript
Vue数据驱动表单渲染,轻松搞定form表单
2019/07/19 Javascript
js实现带积分弹球小游戏
2020/07/21 Javascript
[01:03:42]VP vs VGJ.S 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
用Python进行行为驱动开发的入门教程
2015/04/23 Python
如何利用Fabric自动化你的任务
2016/10/20 Python
matplotlib作图添加表格实例代码
2018/01/23 Python
python书籍信息爬虫实例
2018/03/19 Python
python实现指定字符串补全空格、前面填充0的方法
2018/11/16 Python
python如何写个俄罗斯方块
2020/11/06 Python
HTML5移动端开发遇见的东西
2019/10/11 HTML / CSS
SmartBuyGlasses比利时:购买品牌太阳镜和眼镜
2019/08/09 全球购物
C++:局部变量能否和全局变量重名
2014/03/03 面试题
2014年办公室个人工作总结
2014/11/12 职场文书
公司租车协议书
2015/01/29 职场文书
CSS中实现动画效果-附案例
2022/02/28 HTML / CSS