4.1 字典的使用 4.2创建华为使用字典 字典可以通过下面方式创建: phonebook={'a':'123','b':'321'} 字典由多个键及与其对应的值构成的对组成,上面例子:名字是键,电话号码是值。键和值之间用:隔开 4.2.1 dict 函数 可以使用dict函数,通过映射(其它字典)或者(键、值)这样的序列对建立字典 >>> test=[('name','test'),('age','22')]>>> d=dict(test)>>> d{'age': '22', 'name': 'test'} >>> d['name']'test' dict也可以通过关键字参数创建字典 >>> d=dict(name='test',age='22')>>> d{'age': '22', 'name': 'test'} 如果不带任何参数,dict函数返回一个新的空字典 >>> d=dict()>>> d{} 4.2.2 基本字典操作 很多方面和和序列类似: len(d)返回d中项(键-值)的数量; d[k] 返回关联到键k上的值; d[k]=v 将v关联到键k上 del d[k] 删除键k的项 k in d 检查d中是否有含有键为k的项 和列表的区别: 键类型:字典的键有可�E是浮点型、字符串或者元组,不一定为整型数据 自动添加:即使键不存在,也可以为它分配一个值,字样字典会建立一个新的项。而列表在不使用append的情况下,不能将 值关联到列表范围之外的索引上 成员资格: k in d 查找的是键,而不是值。 k in l(列表)则用来查找值 4.2.3 字典的格式化字符串 >>> phonebook={'beth':'9102','alice':'2341','cecil':'3128'}>>> "cecil's phone number is %(cecil)s" % phonebook"cecil's phone number is 3128" 4.2.4 字典方法 1、clear 清除字典所有的项 >>> d={} >>> d['name']='test' >>> d['age']='100' >>> d {'age': '100', 'name': 'test'} >>> d.clear() >>> d {} 2、copy 返回一个具有相同键-值的新字典,浅复制,在副本中替换值的时候,原始字典不受影响,但是如果修改了某个值,原始字典也会改变,避免此问题可以使用深复制(deep copy) >>> from copy import deepcopy>>> d={}>>> d['names']=['alfred','bertrand']>>> c=d.copy()>>> dc=deepcopy(d)>>> d['names'].append('clive')>>> c{'names': ['alfred', 'bertrand', 'clive']}>>> dc{'names': ['alfred', 'bertrand']} 3、fromkeys 使用给定的键建立新的字典,每个键默认对应的值为None >>> {}.fromkeys(['name','age']){'age': None, 'name': None} 也可以直接在所有字典的类型dict上面调用方法 >>> dict.fromkeys(['name','age']){'age': None, 'name': None} 也可以提供自己的默认值 >>> dict.fromkeys(['name','age'],('test')){'age': 'test', 'name': 'test'} 4、get 一种轻松的访问字典项的方法 >>> d['name']='test'>>> d.get('name')'test' 如果值不存在,返回一个none >>> d.get('a')>>> print d.get('a')None 可以自定义默认值,替换none >>> d.get('a','nofind')'nofind'>>> d.get('a','N/A')'N/A' 5、has_key 检查字典中是否有给出的键 d.has_key(k)相当于 k in d,3.0中无此函数 >>> d={}>>> d.has_key('name')False>>> d['name']='et'>>> d.has_key('name')True>>> 6、items和iteritems items将所有的字典项以列表方式返回,返回时没有特殊的顺序 d={'title':'python web site','url':'http://www.python.org','spam':0}>>> d{'url': 'http://www.python.org', 'spam': 0, 'title': 'python web site'} >>> d.items()[('url', 'http://www.python.org'), ('spam', 0), ('title', 'python web site')] iteritems会使用迭代的结果返回 >>> it = d.iteritems()>>> it<dictionary-itemiterator object at 0x7f56b26ee418>>>> list(it)[('url', 'http://www.python.org'), ('spam', 0), ('title', 'python web site')] 8、pop 获取对应于给定的键值,并将键值从字典移除 >>> d={'x':1,'y':2}>>> d.pop('x')1>>> d{'y': 2} 9、popitem 类似list.pop,后者会弹出列表的最后一个元素,popitem会弹出随机的项 >>> d={'x':1,'y':2,'z':4,'f':4}>>> d.popitem()('y', ,2) 10、setdefault 类似于get,除此之外还可以在字典中不含有给定键的情况下设定相应的键值 >>> d={}>>> d.setdefault('name','N/A')'N/A'>>> d{'name': 'N/A'}>>> d['name']='adsf'>>> d.setdefault('name','N/A')'adsf'>>> d{'name': 'adsf'} 键值不 存在返回默认值并更新字典,键值存在,返回相对应的值,不设置,默认使用none >>> d={}>>> d.setdefault('name')>>> d{'name': None} 11、update 利用一个字典更新另外一个字典,有相同的键会覆盖 >>> d={'name':'test','age':'N/A'}>>> x={'title':'www'} >>> d.update(x)>>> d{'age': 'N/A', 'name': 'test', 'title': 'www'} 12、values和itervalues 以列表的方式返回字典中的值,itervalues返回值的迭代器 >>> d{'age': 'N/A', 'name': 'test', 'title': 'www'}>>> d.values()['N/A', 'test', 'www'] 4.3 小结 本章介绍的内容: 映射: 可以使用任何不可变对象表示元素 利用字典格式化字符串:通过在格式化说明符中包括名称(键)来对字典应用字符串格式化操作。 4.3.1 本章的新函数: dict(seq) 用(键,值)对(或者映射和关键字参数)建立字典


本文出自 “hello,world!” 博客,请务必保留此出处http://hellobox.blog.51cto.com/1864916/1347519

更多相关文章

  1. 【Python】 编码,en/decode函数以及print语句的一些探索
  2. Python——函数 8、可变长参数
  3. 学习python的第十六天(迭代器,三元表达式,列表生成式,字典生成式,
  4. Python基础数据类型-函数传参详解
  5. Ansible:维护sudoers列表的最佳实践
  6. python函数不定长参数
  7. python基础(7)--深浅拷贝、函数
  8. python3生成10个成绩列表,求其平均分
  9. Python列表和字典的学习

随机推荐

  1. 前端省市区(县)三级联动下拉框
  2. 在Internet Explorer中使用sprited按钮和
  3. touchableopacity onpress函数undefined(
  4. 将textarea值附加到现有数组javascript
  5. javascript 截取字符串方法汇总
  6. Javascript中的素数函数...多个语句
  7. [Effective JavaScript 笔记]第65条:不要
  8. 如何在chart.js中为饼图添加标签
  9. 禁用Chrome严格的MIME类型检查
  10. JavaScript正则表达式定义字符集