zoukankan      html  css  js  c++  java
  • python基础005----字典&集合

    一、字典

    1、概述

           字典是一个无序的、可修改的,元素呈键值对的形式(这种结构类型通常也称为映射,或者叫关系数组,也有叫哈希表的),以逗号分割的,以大括号包围的数据类型。字典中的每个元素由2部分组成,键:值键必须是唯一的,但值不必,值可以取任何数据类型,但键必须是不可变的,所以可以用数字,字符串或元组充当,而用列表就不行。

           字典和列表一样,也能够存储多个数据,字典中的值没有特殊的顺序。列表中找某个元素时,是根据下标进行的,如果下标很多,查找不方便。当索引不好用时,可以使用字典。由于字典是无序的,所以我们在定义字典和字典生成之后的元素的顺序是不同的。 

    2、定义

         创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。如下所示: 

    dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
    dict1 = { 'abc': 123, 98.6: 37 }
    print('利用get方法访问字典中的值:',dict.get('Age'))   #利用get方法访问字典中的值
    print('利用键名访问字典中的值:',dict['Age'])    #利用键名访问字典中的值,把相应的键放入到方括号中
    print('如果用字典里没有的键访问数据,报错:',dict['Ages'])   #如果如果用字典里没有的键访问数据,会输出错误

    输出结果:

         

    注:get方法如果没有找到相应的值,就会输出None,后面也可以带默认的值,工作中常用。

    3、列表内建函数

    (1)添加和修改

            

    代码实例:

    dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
    dict1 = { 'abc': 123, 98.6: 37, 'sse': 7}
    #添加、修改
    dict.update(dict1)    #update把dict1的键值对更新到dict
    print('update把dict1的键值对更新到dict:',dict)
    dict.update({'Age':'add'})  #如果键存在,覆盖之前的值;
    print('键存在输出覆盖后后的字典:',dict)
    dict.update({'Age':'add'})  #如果键不存在,在字典中添加键值对。
    print('键不存在添加键值对后的字典:',dict)
    dict['like']='sing'       #添加
    print('输出添加后的字典:',dict)
    dict['like']='dance'       #修改
    print('输出修改后的字典:',dict)

     输出结果:

         

    (2)删除

            

    代码实例:

    dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
    dict1 = { 'abc': 123, 98.6: 37, 'sse': 7}
    #删除
    print('pop删除字典给定键 key 所对应的值:',dict1.pop(98.6))
    print('popitem返回并删除字典中的最后一对键和值:',dict1.popitem())
    del dict['Age']   # 删除键 'Name'
    print('输出del 删除键后的字典:',dict)
    dict.clear()       # 清空字典
    print('输出clear清空后的字典:',dict)
    del dict           # 删除字典
    print('输出del 删除后的字典:',dict['Age'])

    输出结果:

          

     (3)查找

             

     代码实例:

    dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
    dict1 = { 'abc': 123, 98.6: 37 }
    #字典的取值
    print('返回所有key的列表:',dict.keys())
    print('返回所有value的列表:',dict.values())
    print('get方法访问字典中的值:',dict.get('Age'))                        #利用get方法访问字典中的值,以键取值
    print('get方法如果指定键不存在,默认返回None:',dict.get('Ages'))         #get方法如果指定键不存在,默认返回None
    print('get方法指定键不存在时,可以指定返回内容:',dict.get('Ages','dd'))   #get方法指定键不存在时,可以指定返回内容
    print('setdefault方法访问字典中的值:',dict.setdefault('Age'))          #利用setdefault方法访问字典中的值
    dict.setdefault('Ages')           #setdefault方法如果键不存在,在字典中添加键并将值默认设为None
    print('setdefault方法键不存在,在字典中添加键,值默认为none:',dict)
    dict.setdefault('Agess',7)        #setdefault方法如果键不存在,可以设置自定义值
    print('setdefault方法键不存在,可以自定义值:',dict)
    print('items以列表返回可遍历的(键, 值) 元组数组:',dict.items())       #以列表返回可遍历的(键, 值) 元组数组
    print('统计字典中的键值对个数:',len(dict))
    print('输出字典,以可打印的字符串表示:',str(dict))

    输出结果:

     (4)总结

            

    二、集合

    1、概述

           集合(set)是一个无序的、不重复的元素序列。与之前的列表、元组类似,可以存储多个数据,但是这些数据是不重复的。

    2、定义

          创建一个列表,可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。如下所示: 

    s1 = {'apple', 'orange', 'pink', 'pear',  'banana'}
    s2 = {1,2,3,4,5,6,4,3,3}
    s3=set()        #创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典
    print('输出空的集合的类型',type(s3))
    print('集合元素不重复,存在重复元素时不输出',s2)   #去重功能,集合中没有重复的元素

    输出结果:

         

    3、集合间的运算

          

    代码实例:

    s1 = {'apple', 'orange', 'pink', 'pear',  'banana'}
    #集合间的运算
    s4={'pear', 'banana', 'yellow', 'green', 'red'}
    print('输出交集',s1&s4)       #两个集合的公共部分
    print('输出并集',s1|s4)       #两个集合合并,没有重复元素
    print('输出差集',s1-s4)       #只存在s1中不存在s4中的元素
    print('输出对称差集',s1^s4)    #只有在s1或s4中,但是不会同时出现在二者中

    输出结果:

        

     4、集合的操作

    (1)添加

            

     代码实例:

    s1 = {'apple', 'orange', 'pink', 'pear',  'banana'}
    s4={'pear', 'banana', 'yellow', 'green', 'red'}
    #添加
    s1.add('potato')          #将将元素添加到集合中,如果元素已存在,则不进行任何操作
    print('输出add添加后的结果',s1)
    s1.update({'yellow', 'green'})  #参数可以是列表,元组,字典等
    print('输出update添加后的结果',s1)

     输出结果:

        

     (2)删除

         

     代码实例:

    s1 = {'apple', 'orange', 'pink', 'pear',  'banana'}
    s4={'pear', 'banana', 'yellow', 'green', 'red'}
    #删除
    s1.remove('banana')    #将元素从集合中移除,如果元素不存在,则会发生错误
    print('remove移除元素后的集合',s1)
    s1.discard('pear')     #移除集合中的元素,如果元素不存在,不会发生错误
    print('discard移除元素后的集合',s1)
    s1.pop()               #随机删除集合中的一个元素
    print('pop移除元素后的集合',s1)

     输出结果:

          

    、各种数据类型比较

      1、数据类型比较

       

     2、可变类型与不可变类型

          (1)可变类型:值可以改变------列表list、字典dict、集合set

          (2)不可变类型:值不可以改变------数值类型(int,bool,float)、字符串 str、元组tuple

     3集合set、列表list、元组tuple之间可以相互转化

    #集合set、列表list、元组tuple之间可以相互转化
    str='hello world'
    print('字符串转列表输出:',list(str))
    print('字符串转集合输出:',set(str))
    print('字符串转元组输出:',tuple(str))

     输出结果

       

     4、通用方法整合

     (1)常见操作

          

          注:in在字典操作时,判断的是字典的键

     (2)python内置函数

             

  • 相关阅读:
    Django Swagger接口文档生成
    基于docker快速搭建hbase集群
    Cassandra数据操作管理工具tableplus
    基于docker创建Cassandra集群
    基于docker快速搭建hive环境
    [20200623]应用报错:当前事务无法提交,而且无法支持写入日志文件的操作
    zabbix--监控 TCP 连接状态
    kubernetes 使用ceph实现动态持久卷存储
    MySQL备份脚本
    Linux Pam后门总结拓展
  • 原文地址:https://www.cnblogs.com/geqiandeqingmu/p/14606938.html
Copyright © 2011-2022 走看看