本系列教程供个人学习笔记使用,如果您要浏览可能需要其它编程语言基础(如C语言),why?因为我写得烂啊,只有我自己看得懂!!

  • 字典
    字典的元素是由一对对键值对组成,每一对之间用逗号隔开,将所有的键值对用花括号括起来就构成了字典。它是无序的,键和值之间用冒号隔开。
    语法格式:dic_name={key:value,key:value,key:value}
    简单来说:
      1.类似于json,也就是key-value键值对
      2.不允许同一个键值出现两次,所以一般对字典的操作都是对键进行操作。
      3.键必须不可变,所以可以用数字,字符串,元组充当,而不能用列表
    例如:

     dic={"key1":"value1","key2":"value2","key3":"value3"} #定义字典

    1.字典的基础操作
      
      1)可以增加、删除、修改、访问字典中的元素。同样也可以求字典的长度。
    例子:

     dic={"key1":"value1","key2":"value2","key3":"value3"} #定义字典
    print dic #打印整个字典
    print dic["key2"] #根据key找value del dic['key1'] #根据key删除元素(通过键删除一个键值对)
    print dic dic['key4']="value4" #可以直接添加一个原字典里没有的元素(key不存在就行)
    print dic dic["key2"]=45678 #修改字典中的某值
    print dic #打印整个字典 print len(dic) #字典的长度

    输出:

     {'key3': 'value3', 'key2': 'value2', 'key1': 'value1'}
    value2
    {'key3': 'value3', 'key2': 'value2'}
    {'key3': 'value3', 'key2': 'value2', 'key4': 'value4'}
    {'key3': 'value3', 'key2': 45678, 'key4': 'value4'}
    3

      2)也可以通过字典的in运算对字典进行遍历(其实是用的for循环),也可以用来判断某个键是否在字典中。

    例子:

     dic={"key1":"value1","key2":"value2","key3":"value3"} #定义字典
    for key in dic:
    print key,dic[key] #遍历字典并输出 print 'key1' in dic #判断键值为key1是否存在于字典中
    print 'key5' in dic

    输出:

     key3 value3
    key2 value2
    key1 value1
    True
    False

    2.字典的相关函数

      1)字典复制copy函数:字典的copy方法可以新建一字典与拷贝对象里的数据项一样。
    例子:

     dic={"key1":"value1","key2":"value2","key3":"value3"} #定义字典
    dic1 = dic.copy() #字典复制
    print dic
    print dic1
    del dic1['key3'] #dic1是dic的一个副本,对dic1进行操作不影响dic
    print dic
    print dic1

    输出:

     {'key3': 'value3', 'key2': 'value2', 'key1': 'value1'}
    {'key3': 'value3', 'key2': 'value2', 'key1': 'value1'}
    {'key3': 'value3', 'key2': 'value2', 'key1': 'value1'}
    {'key2': 'value2', 'key1': 'value1'}

      2)字典的get函数和update函数:dic_name.get(key_name)函数等价于dic_name[key_name]用来获取某键对应的值。update(key_value)函数用来更新字典里对应Key的值,如果要更新的key在字典里不存在,则update就向字典里增加数据。
    例子:

     dic={"key1":"value1","key2":"value2","key3":"value3"} #定义字典
    print dic
    print dic.get('key1') #相当于dic['key1']
    dic.update({'key1':'value8'}) #更新key1的值
    print dic
    dic.update({'key5':'value9'}) #增加key5
    print dic

    输出:

     {'key3': 'value3', 'key2': 'value2', 'key1': 'value1'}
    value1
    {'key3': 'value3', 'key2': 'value2', 'key1': 'value8'}
    {'key3': 'value3', 'key2': 'value2', 'key1': 'value8', 'key5': 'value9'}

      3)字典里的keys()、values()、items()函数:他们返回的都是一个列表。keys()获取字典的所有Key,values()获取字典的所有value,items()获取字典的key,value值。
    例子:

     dic={"key1":"value1","key2":"value2","key3":"value3"} #定义字典
    print dic
    print dic.keys() #获取所有的Key
    print dic.values() #获取所有的value
    print dic.items() #获取所有的key,value

    输出:

     {'key3': 'value3', 'key2': 'value2', 'key1': 'value1'}
    ['key3', 'key2', 'key1']
    ['value3', 'value2', 'value1']
    [('key3', 'value3'), ('key2', 'value2'), ('key1', 'value1')]

      4)字典dict()函数:创建字典的函数
    例子:

     d0 = dict() #创建空字典
    print d0 d1 = dict(a='',b=456) #通过赋值创建字典 ,key不能加引号,value如果是字符串就要加引号,是数字可以不加
    print d1 key = range(1,3)
    value = ['john','Tom','Jack']
    d2 = dict(zip(key,value)) #通过一对列表创建字典
    print d2

    输出:

     {}
    {'a': '', 'b': 456}
    {1: 'john', 2: 'Tom'}

      4)字典的pop()、popitem()和clear()函数:pop()函数用于通过key来获取其value值并从字典里删除该数据项。popitem()函数随机移除一个数据项并返回移除的数据项(元组形式返回)。clear()函数用于清除字典数据项。
    例子:

     dic={"key1":"value1","key2":"value2","key3":"value3","key4":"value4","key5":"value5"} #定义字典
    print dic print dic.pop('key2') #删除key2并返回Key2对应的value值
    print dic
    print dic.popitem() #随机删除一对数据项,并以元组形式返回该数据项
    print dic dic.clear() #清空字典的条目
    print dic

    输出:

     {'key3': 'value3', 'key2': 'value2', 'key1': 'value1', 'key5': 'value5', 'key4': 'value4'}
    value2
    {'key3': 'value3', 'key1': 'value1', 'key5': 'value5', 'key4': 'value4'}
    ('key3', 'value3')
    {'key1': 'value1', 'key5': 'value5', 'key4': 'value4'}
    {}

      字典还有很多函数,这里只是冰山一角,其它的可以查文档哦~

Python基础笔记系列六:字典的更多相关文章

  1. Python基础笔记系列十一:标准输入输出、文件读写和指针等操作

    本系列教程供个人学习笔记使用,如果您要浏览可能需要其它编程语言基础(如C语言),why?因为我写得烂啊,只有我自己看得懂!! 标准输入输出一.输入 在sublime中这个时候需要安装SublimeRE ...

  2. Python基础笔记系列一:基本工具与表达式

    本系列教程供个人学习笔记使用,如果您要浏览可能需要其它编程语言基础(如C语言),why?因为我写得烂啊,只有我自己看得懂!! 工具基础(Windows系统下)传送门:Python基础笔记系列四:工具的 ...

  3. Python基础笔记系列九:变量、自定义函数以及局部变量和全局变量

    本系列教程供个人学习笔记使用,如果您要浏览可能需要其它编程语言基础(如C语言),why?因为我写得烂啊,只有我自己看得懂!! 变量在前面的系列中也许就可以发现,python中的变量和C中的变量有些许不 ...

  4. Python基础笔记系列三:list列表

    本系列教程供个人学习笔记使用,如果您要浏览可能需要其它编程语言基础(如C语言),why?因为我写得烂啊,只有我自己看得懂!! python中的list列表是一种序列型数据类型,一有序数据集合用逗号间隔 ...

  5. Python基础笔记系列十四:python无缝调用c程序

    本系列教程供个人学习笔记使用,如果您要浏览可能需要其它编程语言基础(如C语言),why?因为我写得烂啊,只有我自己看得懂!! python语言可以对c程序代码进行调用,以弥补python语言低性能的缺 ...

  6. Python基础笔记系列十三:socket网络编程

    本系列教程供个人学习笔记使用,如果您要浏览可能需要其它编程语言基础(如C语言),why?因为我写得烂啊,只有我自己看得懂!!使用python编写一个简易的服务端程序和客户端程序,启动服务端和客户端(监 ...

  7. Python基础笔记系列十二:requests模块的简单应用

    本系列教程供个人学习笔记使用,如果您要浏览可能需要其它编程语言基础(如C语言),why?因为我写得烂啊,只有我自己看得懂!! httpbin httpbin这个网站能测试 HTTP 请求和响应的各种信 ...

  8. Python基础笔记系列十:模块

    本系列教程供个人学习笔记使用,如果您要浏览可能需要其它编程语言基础(如C语言),why?因为我写得烂啊,只有我自己看得懂!! 模块 #1.类比于java中的jar包,模块能让你能够有逻辑地组织你的Py ...

  9. Python基础笔记系列八:字符串的运算和相关函数

    本系列教程供个人学习笔记使用,如果您要浏览可能需要其它编程语言基础(如C语言),why?因为我写得烂啊,只有我自己看得懂!! 字符串的运算1.字符串的加法和乘法 python中不但支持字符串相加,还支 ...

随机推荐

  1. 读 下一代SOA 服务技术与面向服务简明指南

    面向服务的八个设计原则 标准化服务合同 在同一个服务仓库中的服务都符合同样的合同设计标准 服务松耦合 服务合同施加了消费者低耦合的要求,而它们自己也与周围的环境脱钩 服务抽象 服务合同只包含基本信息, ...

  2. c#学习笔记之使用 TableLayoutPanel 控件设置窗体布局

    使用 TableLayoutPanel 控件设置窗体布局 在 Visual Studio IDE 左侧,找到“工具箱”选项卡. 选择“工具箱”选项卡,随即将显示工具箱.(或者,在菜单栏上,依次选择“视 ...

  3. Logon Session Times

    How to Get User Logon Session Times from the Event Log To figure out user session time, you’ll first ...

  4. 如何让socket编程非阻塞?

    import socket # 创建socket client = socket.socket() # 将原来阻塞的位置变成非阻塞(报错) client.setblocking(False) # 百度 ...

  5. eclipse导入项目,项目名出现红叉的情况(修改版)

    转至:http://blog.csdn.net/niu_hao/article/details/17440247 今天用eclipse导入同事发给我的一个项目之后,项目名称上面出现红叉,但是其他地方都 ...

  6. Redis四(Set操作)

    1.Set操作 Set集合就是不允许重复的列表 集合操作(无序) sadd(name,values) 1 # name对应的集合中添加元素 scard(name) 1 获取name对应的集合中元素个数 ...

  7. Elasticsearch中文搜索环境搭建

    Elasticsearch是一个建立在全文搜索引擎 Apache Lucene™ 基础上的搜索引擎,功能强大,最近刚好要研究搜索这一块,简要记录备日后查阅 安装Java JDK,由于Lucene是用J ...

  8. vue-router路由器的使用

    一. vue-router路由 1.简介 1.为什么要用vue-router 使用Vue.js开发SPA(Single Page Application)单页面应用 2.什么是单页面应用 根据不同ur ...

  9. 阿里、腾讯、京东、微软,各家算法&数据挖掘岗位面经大起底!

    阿里.腾讯.京东.微软,各家算法&数据挖掘岗位面经大起底! 2016-02-24 36大数据 36大数据 作者: 江少华 摘要: 从2015年8月到2015年10月,花了3个月时间找工作,先后 ...

  10. testng xml配置文件

    简单介绍 运行TestNG测试脚本有两种方式:一种是直接通过IDE运行(例如使用eclipse中的“Run TestNG tests”),另一种是从命令行运行(通过使用xml配置文件).当我们想执行某 ...