映射类型:字典

字典是无序的,映射类型对象里哈希值和被指向的对象是一对多的关系,字典中的键必须是可哈希的,所有不可变的类型都是可哈希的,另外针对数字键来说,值相等的两个数字是相同的键,例如1和1.0;说到不可变类型你可能会想到元组,元组作为字典的键是需要注意的地方就是元组中只包括想数字和祖父传这样的不可变参数,才可以作为字典中有效的键

创建一个字典有以下几种方法。

1.dict1 = {}

2.dict2 = dict()

3.dict3 = dict((['x',1],['y',2]))

4.dict4 = {}.fromkeys(('x','y'),-1)      # -1为vaules,也可以不填参数,默认为None

    >>>{'y':-1,'x':2}

5.dict5 = dict(zip(('x','y'),(1,2))

6.dict6 = dict([('xy'[i-1],i) for i in range(1,3)])

国际惯例dir(dict)

['__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'clear', 'copy', 'fromkeys', 'get', 'items', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values']

1.clear 清除字典

2.copy 拷贝,浅拷贝

3.fromkeys 创建并返回一个新字典

dic = dict.fromkeys(('x','y'),1)    # 参数seq为键,val参数若没有指定那就是默认值为None
print(dic) >>> {'x': 1, 'y': 1}

4.get 对字典中的键key,返回他对应的value,如果不存在,则返回defualt的值,默认是None

dic = {'k1':1,'k2':2}
v = dic.get('k3','sb')
print(v) >>>sb

5.items 返回一个包含字典中键,值对元祖的列表

dic = {'k1':1,'k2':2}
v = dic.items()
print(v) >>>dict_items([('k2', 2), ('k1', 1)]) # 是一个列表

6.keys 返回一个包含字典中键的列表

dic = {'k1':1,'k2':2}
v = dic.keys()
print(v) >>>dict_keys(['k1', 'k2'])

7.pop(key[,default]) 如果字典中key键存在,删除并返回dict[key],如果不存在,且没有给出default的值,则报keyerror

dic = {'k1':1,'k2':2}
v = dic.pop('k1','sb')      # default = 'sb'
print(v) >>> 1

8.popitem 以元祖的形式返回并删除第一个键值对

dic = {'k1':1,'k2':2}
print(dic)
v = dic.popitem() # 因为字典是无序的,所以每次的执行结果都可能不一样 print(v) >>>{'k2': 2, 'k1': 1}
('k2', 2) dic = {'k1':1,'k2':2}
print(dic)
v = dic.popitem()
print(v) >>>{'k1': 1, 'k2': 2}
('k1', 1)

9.setdefault(key,default = None) 如果字典中不存在key键,由dict[key] = default 为它赋值

dic = {'k1':1,'k2':2}
v = dic.setdefault('k3','sb')
print(v) >>> sb
print(dic) >>>{'k1': 1, 'k2': 2, 'k3': 'sb'} vv = dic.setdefault('k2','sb')
print(vv) >>> 2
print(dic) >>>{'k1': 1, 'k2': 2}

  

  

10.update(dict2) 将字典dict2的键值对添加到字典中

dic1 = {'k1':1,'k2':2}
dic2 = {'k3':3}
dic2.update(dic1) # tips: 字典中原有的键如果与新添加的键重复,那么重复键对应的原有条目的值将被新键所对应的值所覆盖
print(dic2) >>>{'k2': 2, 'k3': 3, 'k1': 1}

11.values 返回一个包含字典中所有值的列表

dic1 = {'k1':1,'k2':2}
v = dic1.values()
print(v) >>>dict_values([2, 1])

  

dict built-in function的更多相关文章

  1. Meet Python: little notes 3 - function

    Source: http://www.liaoxuefeng.com/ ♥ Function In python, name of a function could be assigned to a ...

  2. Know How To Use ID_NULL Function To Search An Object In Oracle Forms

    ID_NULL built in function is used to determine that an object type variable is null or not null in O ...

  3. Python2.x和3.x主要差异总结

    本文部分转载自http://my.oschina.net/chihz/blog/123437,部分来自自身修改 开始使用Python之后就到处宣扬Python如何如何好,宣传工作的一大重要诀窍就是做对 ...

  4. Python3中文教程

    搜索 此文档来源自网络 安装 PYTHON❝ Tempora mutantur nos et mutamur in illis. (时光流转,吾等亦随之而变.) ❞ — 古罗马谚语 深入欢迎来到 Py ...

  5. 读书笔记之《编程小白的第1本Python入门书》

    本书电子版下载地址:百度网盘 写在前面:你需要这本书的原因 有没有那一个瞬间,让你想要放弃学习编程? 在我决心开始学编程的时候,我为自己制定了一个每天编程1小时的计划,那时候工作很忙,我只能等到晚上9 ...

  6. 3. Dictionaries and Sets

    1. Generic Mapping Types The collections.abc module provides the Mapping and MutableMapping ABCs to ...

  7. day16_函数作用域_匿名函数_函数式编程_map_reduce_filter_(部分)内置函数

    20180729    补充部分代码 20180727    上传代码 #!/usr/bin/env python # -*- coding:utf-8 -*- # ***************** ...

  8. Pass算子python 函数

    Pass算子python 函数 函数 函数是代码的一种组织形式 函数应该能完成一项特定的工作,而且一般一个函数只完成一项工作 有些语言,分函数和过程两个概念,通俗解释是,有返回结果的是函数,无返回结果 ...

  9. Javacript实现字典结构

    字典是一种用[键,值]形式存储元素的数据结构.也称作映射,ECMAScript6中,原生用Map实现了字典结构. 下面代码是尝试用JS的Object对象来模拟实现一个字典结构. <script& ...

  10. Python学习日志(二)

    在网易云课堂看到小甲鱼的python视频,想起以前看就是看他的视频学C的虽然后来不了了之都怪我自己啦,于是决定跟着这个视频来学python啦! IDLE IDLE其实是一个python shell , ...

随机推荐

  1. HDU 1242 dFS 找目标最短路

    //多个起点,要最短得目标,不妨倒过来从目标出发,去找最近的点更新!!!!!!递归时思路要清楚 #include<iostream> #include<cstring> usi ...

  2. 洛谷—— P2656 采蘑菇

    https://www.luogu.org/problem/show?pid=2656 题目描述 小胖和ZYR要去ESQMS森林采蘑菇. ESQMS森林间有N个小树丛,M条小径,每条小径都是单向的,连 ...

  3. Spring实战Day5

    3.3自动装配bean的歧义性 产生歧义的原因 找到多个符合条件的组件,如下注入talent时会有两个满足条件的组件 解决方法 标示首选的bean,但是同时标示两个或多个同样会存在歧义 自动装配标示P ...

  4. easyui combobox模糊查询

    用easyui框架开发的攻城狮恐怕都遇到过这样一个问题,就是在新增页面combobox下拉框需要支持模糊查询,但是输入不是combobox中Data里面的值的时候,点击保存,依然是可以新增进去的,这样 ...

  5. 【Linux学习笔记】栈与函数调用惯例

    栈与函数调用惯例(又称调用约定)— 基础篇 记得一年半前参加百度的校招面试时,被问到函数调用惯例的问题.当时只是懂个大概,比如常见函数调用约定类型及对应的参数入栈顺序等.最近看书过程中,重新回顾了这些 ...

  6. PS 图层后面有索引两字怎么办

    ps中图层后面有索引两字的怎么把它拖进别的图中?或怎么把索引去掉? 悬赏分:0 | 解决时间:2010-11-5 08:58 | 提问者:jk500pk 最佳答案 图像--模式 把索引颜色模式改成RG ...

  7. gulp配置 - PC

    初始化目录结构如下(图片看不清可以拖到桌面或者直接CTRL+鼠标滚轮进行观看) 开发环境示例: 上线环境示例: gulpfile.js(详解版) (2018-3-28)添加了scss处理(去除了les ...

  8. docker 搭建linux samba

    https://hub.docker.com/r/jenserat/samba-publicshare/ 需要共享目录 只需直接 挂载容器映射即可

  9. TCP 的那些事儿(下)(转)

    TCP的RTT算法 从前面的TCP的重传机制我们知道Timeout的设置对于重传非常重要, 设长了,重发就慢,没有效率,性能差: 设短了,重发的就快,会增加网络拥塞,导致更多的超时,更多的超时导致更多 ...

  10. CellularAutomation(细胞自己主动机)

    CellularAutomation(细胞自己主动机) 细胞自己主动机(英语:Cellular automaton).又称格状自己主动机.元胞自己主动机,是一种离散模型,在可算性理论.数学及理论生物学 ...