zoukankan      html  css  js  c++  java
  • pyhon第五章:字典和结构化数据

    1.字典数据类型

    字典数据类似于列表和元组数据,都是由多个值的集合,但是,字典的数据结构却完全不同

    字典的数据结构:

    {key1:value1,key2:value2,.........}

    字典是由一对大括号包围起来的,里面是多组key和value的键值对,记得之前讲过的另外两种数据类型,列表是由中括号包围,元组是由小括号包围。字典的数据类型和java的json数据结构类似

    python自学篇(第五章:字典和结构化数据)

     

    结果:b1

    列表数据是可以根据下标取值,字典数据是根据key取值,并且key可以是数值型或者是字符串

    1.1字典与列表

    字典和列表的区别:列表数据是有顺序的,而字典数据是不要求顺序的,所以字典不能像列表一样通过切片的方式去取值。

    python自学篇(第五章:字典和结构化数据)

     

    结果:False 和 True

     

    因为字典的key可以是任意的数据类型,所以更方便我们用来表示数据,比如,我们记录一下一家公司员工的工资条,key就可以用员工姓名,value就是工资数据

    比如:

    python自学篇(第五章:字典和结构化数据)

     

    结果:

    python自学篇(第五章:字典和结构化数据)

     

    解析:这里spam字典的key是员工姓名,value是工资,循环打印出输入的员工的工资,一旦输入不存在的员工,输出 no people, 如果输入空字符串,就结束程序

    知识点:

    (1):字典的key值可以任意数据类型,甚至是中文。

    (2):while循环,一定要注意避免死循环

    (3):条件逻辑判断if语句的使用

    (4):not in关键字的使用

    (5):try except 异常捕获代码块的使用

    1.2 字典数据常用的方法:

    主要有:keys(),values(),items()

    keys():指字典数据里的所有key

    values();指字典数据里的所有value数据

    item():指字典数据里的所有key,value键值对

    这些方法返回的值是不能够被修改的,没有insert(),append()或者remove()方法

    python自学篇(第五章:字典和结构化数据)

     

    结果:

    python自学篇(第五章:字典和结构化数据)

     

    解析:从返回的结果可以看出来,字典本身的值是可以被修改的,甚至可以修改原来值的数据类型,但是通过keys(),values(),items()方法返回的值是不能修改的,他们分别对应的数据类型是dict_keys,dict_values和dict_items,当然也可以通过这三个方法循环迭代出键、值、键/值对。另外注意通过items()返回的数据是包含键值对的元组。

    如果想把这些方法返回的值变成真正的列表,可以通过list()进行强制转换

    python自学篇(第五章:字典和结构化数据)

     

    返回的结果:

    python自学篇(第五章:字典和结构化数据)

     

    1.3 检查字典中是否存在该值

    在上面的例子中已经有过说明了,主要还是对 in和not in关键字的使用

    python自学篇(第五章:字典和结构化数据)

     

    结果:

    python自学篇(第五章:字典和结构化数据)

     

    解析:从结果中可以看出来,xx in spam.keys和 xx in spam 的效果是一样的,都是判断是否存在对应的key值。

    1.4 get()方法

    在很多情况下,循环遍历key值,每次还要判断是否存在key,很麻烦,这时候可以使用字典的get()方法

    get()方法里面有两个参数,第一个是要寻找的key,第二个是字典里没有对应的key,默认返回的值

    python自学篇(第五章:字典和结构化数据)

     

    结果:输入 张三 返回 张三的工资是15000;输入钱六 返回 钱六的工资是0

    1.5 setdefalult()方法

    setdefalult()方法可以为不存在的key设置默认值,如果该key存在,则返回该key的值

    python自学篇(第五章:字典和结构化数据)

     

    结果:

    python自学篇(第五章:字典和结构化数据)

     

    解析:在这两个例子中可以看出,张三存在于字典中,返回了原本的值,钱六不存在字典中,则返回默认设置的值

    用这个方法可以做一个非常实用的事情,统计

    例子:想要统计一个字符串中各个字符的个数

    python自学篇(第五章:字典和结构化数据)

     

    结果:

    python自学篇(第五章:字典和结构化数据)
  • 相关阅读:
    差分约束系统详解
    AC自动机详解
    KMP算法详解
    ST算法详解
    Trie详解
    欧拉路径详解
    树上差分详解
    LCA详解
    树链剖分详解
    树的直径详解
  • 原文地址:https://www.cnblogs.com/qiyuan880794/p/13858132.html
Copyright © 2011-2022 走看看