【python学习笔记】4.字典:当索引不好用时

字典是python中唯一内建的map类型

创建:

key可以为任何不可改变的类型,包括内置类型,或者元组,字符串

通过大括号:

phonebook={'alice': '2341', 'beth':'9102'}

通过dict函数

键值对列表做参数

>>> items=[("name", "Gumby"), ("age", 42)]
>>> dict(items)
{'age': 42, 'name': 'Gumby'}

键值对参数

>>> d = dict(name="Gumby", age=42)
>>> d
{'age': 42, 'name': 'Gumby'}

基本字典操作

  • len(d) 键值对个数
  • d[k] 取值
  • d[k]=v 修改value
  • del d[k],删除键为k的项
  • k in d,是否存在键为k的项

格式化字符串 %(key)type

>>> phonebook={"beth":"9102", "alice":"2341"}
>>> print "%(beth)s" % phonebook
9102
>>>

字典方法

  • clear:清除所有项,原地操作,无返回
  • copy:返回一个具有相同键值对的新字典,这里实现的是浅复制,copy.deepcopy 可以实现深复制
  • >>> x={"username":"admin", "machines":["foo", "bar", "baz"]}
    >>> x
    {'username': 'admin', 'machines': ['foo', 'bar', 'baz']}
    >>> y=x.copy()
    >>> y
    {'username': 'admin', 'machines': ['foo', 'bar', 'baz']}
    >>> y["username"]="mlh"
    >>> y["machines"].remove("bar")
    >>> y
    {'username': 'mlh', 'machines': ['foo', 'baz']}
    >>> x
    {'username': 'admin', 'machines': ['foo', 'baz']}
    >>> import copy
    >>> z=copy.deepcopy(x)
    >>> z
    {'username': 'admin', 'machines': ['foo', 'baz']}
    >>> z["machines"].remove("foo")
    >>> z
    {'username': 'admin', 'machines': ['baz']}
    >>> x
    {'username': 'admin', 'machines': ['foo', 'baz']}
    >>>
  • fromkeys:使用给定的key建立新字典,每个key对应的默认值为None

  • >>> {}.fromkeys(["name", "age"])
    {'age': None, 'name': None}
    >>>
    >>> dict.fromkeys(["name", "age"], "(unkonwn)")
    {'age': '(unkonwn)', 'name': '(unkonwn)'}
    >>>
  • get 安全访问字典,当key不存在的时候返回None

  • >>> a={}
    >>> a['a']
    Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
    KeyError: 'a'
    >>> print a.get("a")
    None
    >>>
  • has_key 返回key是否存在

  • items和iteritems,以列表形式返回字典中的项,列表中的元素为字典中的项,iteritems会返回一个迭代器

  • keys和iterkeys,以列表形式返回字典中key

  • pop,获取给定key的值,然后从字典中移除

  • popitem,弹出一个项

  • setdefault,获取给定key的值,如果没有则设置并返回默认值

  • update 参数字典中项会被添加到旧字典中,若有相同的key则进行覆盖

  • values和itervalues 以列表的形式返回字典中值

【python学习笔记】4.字典:当索引不好用时的更多相关文章

  1. 字典:当索引不好用时2 - 零基础入门学习Python026

    字典:当索引不好用时2 让编程改变世界 Change the world by program 上节课我们学习到在一些情况下,比序列更实用的映射类型:字典.我们知道字典也有个关键符号就是大括号(也叫花 ...

  2. 字典:当索引不好用时 - 零基础入门学习Python025

    字典:当索引不好用时 让编程改变世界 Change the world by program 有天你想翻开牛津字典,查找"sadomasochism[ˌseɪdoʊ'mæsəkɪzəm]&q ...

  3. python学习笔记整理——字典

    python学习笔记整理 数据结构--字典 无序的 {键:值} 对集合 用于查询的方法 len(d) Return the number of items in the dictionary d. 返 ...

  4. python学习笔记七——字典

    4.3 字典结构 字典是Python中重要的数据类型,字典的由“键-值”对组成的集合,字典中的“值”通过“键”来引用. 4.3.1 字典的创建 字典由一系列的“键-值”(key-value)对组成,“ ...

  5. Python学习笔记四--字典与集合

    字典是Python中唯一的映射类型.所谓映射即指该数据类型包含哈希值(key)和与之对应的值(value)的序列.字典是可变类型.字典中的数据是无序排列的. 4.1.1字典的创建及赋值 dict1={ ...

  6. python学习笔记八——字典的方法

    4.3.3 字典的方法 字典的常用方法可以极大地提高编程效率.keys()和values()分别返回字典的key列表和value列表.例: dict={"a":"appl ...

  7. Python学习笔记3(字典)

    创建字典 dict函数 字典的格式化字符串 字典方法 clear copy fromkeys 序列是一个按照一定顺序将值进行组织的数据结构形式,可以通过索引对其进行征引.另外还有一种数据结构是通过名字 ...

  8. python学习笔记(6)——字典(Dictionary)

    dict= {key1 : value1, key2 : value2 ...} 关键词:字典中元素成对出现- key:value 格式- 两端{ } ,键:值,每对键值间用 ,隔开. 键key-唯一 ...

  9. Python学习笔记之字典

    一.创建和使用字典 1.创建字典 phonebook={'Alice':'2341','Beth':'9102','Cecil':'3258'} 2.dict,通过映射创建字典 >>> ...

  10. 【Python学习笔记】字典操作

    字典dict是Python中唯一内置的映射类型,由键值对组成,字典是无序的.字典的键必须是不变对象,如字符串.数字.元组等,而包含可变对象的列表.字典和元组则不能作为键.这里可变和不可变的意思是指这个 ...

随机推荐

  1. canvas-缩放

    Canvas-图片缩放 由上一篇canvas-旋转的例子可以了解到canvas的一些特性,不熟悉的同学可以先去看看canvas-旋转. 我们在将图片引入canvas时,图片会一原始像素渲染.这样往往不 ...

  2. mac下使用mysql控制台命令行

    命令行中输入 open .bash_profile 然后将 alias mysql=/usr/local/mysql/bin/mysqlalias mysqladmin=/usr/local/mysq ...

  3. slf4j-logback 日志以json格式导入ELK

    同事整理的,在此分享.logback,log4j2 等slf4j的日志实现都可以以json格式输出日志, 这里采用的是logback.当然也可以以文本行的格式输出,然后在logstash里通过grok ...

  4. HZAU 1199: Little Red Riding Hood 01背包

    题目链接:1199: Little Red Riding Hood 思路:dp(i)表示前i朵花能取得的最大价值,每一朵花有两种选择,摘与不摘,摘了第i朵花后第i-k到i+k的花全部枯萎,那么摘的话d ...

  5. Springdata mongodb 版本兼容 引起 Error [The 'cursor' option is required, except for aggregate with the explain argument

    在Spring data mongodb 中使用聚合抛出异常 mongodb版本 为 3.6 org.springframework.dao.InvalidDataAccessApiUsageExce ...

  6. JVM笔记6-垃圾回收概述

    JVM进行垃圾回收时要考虑哪的问题如下: 1.如何判定对象为垃圾对象? 1.引用计数法:在对象中添加一个引用计数器,当有地方引用这个对象的时候,引用计数器的值就+1,引用失效的时候,计数器的值就-1, ...

  7. shell脚本基础 数值运算 判断 及if语句

    数值运算 整数运算[三种,随便掌握一种即可]expr 数字 运算符 数字 [root@ceshiji ~]# expr 1 + 1(运算符号都是+ - * / 注:*需要\*.%是取余,余数只有0 1 ...

  8. 移动端开发利器vConsole.js,app内嵌H5开发时调试用

    vConsole:一个轻量.可拓展.针对手机网页的前端开发者调试面板,主要还是用于内嵌app页面时在手机上进行调试,打印完全和在PC端一样,方便大家找出问题所在. 不说废话直接进入主题,vConsol ...

  9. 一文解决python模块导入

    python 模块导入 原理 查找是按照 sys.path 中的路径挨个扫描.若都不存在则提示error. sys.path路径第一个是当前运行脚本所在的目录,其后是PYTHONPATH(一般若步专门 ...

  10. 质量管理:PDCA循环

    PDCA循环又叫质量环,是管理学中的一个通用模型,最早由休哈特于1930年构想,后来被美国质量管理专家戴明博士在1950年再度挖掘出来,并加以广泛宣传和运用于持续改善产品质量的过程.[1] 中文名 P ...