zoukankan      html  css  js  c++  java
  • PYTHON-基本数据类型-元祖类型,字典类型,集合类型

    内容:
    1. 元组
    2. 字典
    3. 集合
    ===========================

    元祖类型
    什么是元组: 元组就是一个不可变的列表
    ======================================基本使用======================================
    1、用途: 用于存放多个值,当存放的多个值只有读的需求没有改的需求时用元组最合适

    2、定义方式:在()内用逗号分隔开多个任意类型的值
    t=(1,3.1,'aaa',(1,2,3),['a','b']) # t=tuple(...)

    3、常用操作+内置的方法
    优先掌握的操作:
    1、按索引取值(正向取+反向取):只能取,不能改
    2、切片(顾头不顾尾,步长)
    3、长度
    4、成员运算in和not in
    5、循环

    ======================================该类型总结====================================
    存多个值

    有序

    不可变(1、可变:值变,id不变。可变==不可hash 2、不可变:值变,id就变。不可变==可hash)

    掌握的方法
    index 查找,找不到会报错 (x.index('a'))
    count计数 (x.count(''a))

    -----------------------------------
    字典类型
    ======================================基本使用======================================
    1、用途: 用来存方多个(不同种类的)值

    2、定义方式: 在{}内用逗号分隔开多个key:value的元素,其中value可以是任意数据类型,而key的功能通常是用来
    描述value的,所以key通常是字符串类型,但其实key必须是不可变的类型(intfloatstr uple)

    3、常用操作+内置的方法
    优先掌握的操作:
    1、按key存取值:可存可取
    2、长度len
    3、成员运算in和not in
    4、删除#pop 有返回值,popitem随机删除 (x.popitem())
    5、键keys(),值values(),键值对items()
    print(list(d.keys()))
    print(list(d.values()))
    print(list(d.items()))
    6、循环

    ======================================该类型总结====================================
    存多个值
    无序
    可变(1、可变:值变,id不变。可变==不可hash 2、不可变:值变,id就变。不可变==可hash

    需要掌握的操作
    get方法 (x.get('a'))
    update方法,新增和覆盖 (x.update({}))

    fromkeys:需求是快速新造出一个字典,value的初始值全都为None,而key是来自于一个列表
    keys=['name','age','sex']
    d={}.fromkeys(keys,None)
    print(d)

    setdefault 新key会新增,老key返回原值(x.setdefault('a',1))

    ---------------------------------------
    集合类型

    1. 什么是集合
    在{}内用逗号分隔开多个值,集合的特点:
    1. 每个值必须是不可变类型
    2. 集合无序
    3. 集合内元素不能重复
    2. 为何要用集合
    1. 用于做关系运算
    2. 去重
    3. 如何用集合

    一,集合的第一大用途: 关系运算
    pythons={'egon练习','张铁蛋','李铜蛋','赵银弹','王金蛋','艾里克斯'}
    linuxs={'欧德博爱','李铜蛋','艾里克斯','lsb','ysb','wsb'}

    1 求同时报名两门课程的学生姓名:交集 &
    print(pythons & linuxs)

    2 求报名老男孩学校课程的所有学生姓名:并集 |
    print(pythons | linuxs)

    3 求只报名python课程的学生姓名: 差集 -
    print(pythons - linuxs) #求只报名pythons课程的学生姓名

    4 求没有同时报名两门课程的学生姓名: 对称差集 ^
    print((pythons - linuxs) | (linuxs - pythons))
    print(pythons ^ linuxs)

    5 父子集:指的是一种包含与被包含的关系
    情况一:
    s1={1,2,3}
    s2={1,2}
    print(s1 > s2) #>号代表s1是包含s2的,称之为s1为s2的父集
    情况二:
    s1={1,2,3}
    s2={1,2,3}
    print(s1 == s2) #s1如果等于s2,也可以称为s1是s2的父集合
    综上:
    s1 >= s2 就可以称为s1是s2的父集

    二,集合的第二大用途:去重
    集合去重的局限性:
    1. 会打乱原值的顺序
    2. 只能针对不可变的值去重

    stus=['egon练习','lxx','lxx','alex','alex','yxx']
    new_l=list(set(stus))
    print(new_l)

    old_l=[1,[1,2],[1,2]]
    print(set(old_l))

    集合里面不能放字典/列表
    l=[
    {'name':'egon练习','age':18,'sex':'male'},
    {'name':'alex','age':73,'sex':'male'},
    {'name':'egon练习','age':20,'sex':'female'},
    {'name':'egon练习','age':18,'sex':'male'},
    {'name':'egon练习','age':18,'sex':'male'},
    ]
    new_l=[]
    for dic in l:
    if dic not in new_l:
    new_l.append(dic)
    print(new_l)

    需要掌握的操作:
    update 更新 (x.update(1))
    add 添加 (x.add({1}))

    pop 随机删除 (x.pop)

    remove 删除选定的值,如值不存在,会报错 (x.remove)
    discard 删除选定的元素,如值不存在,不会报错 (x.discard)

    isdisjoint 判断,两个set没有关联则为True (x.isdisjoint(y))

    ======================================该类型总结====================================
    存多个值
    无序
    set可变(1、可变:值变,id不变。可变==不可hash 2、不可变:值变,id就变。不可变==可hash
  • 相关阅读:
    Java中synchronized的使用实例
    Javaweb异常提示信息统一处理
    Java异常封装
    Java经典设计模式之十一种行为型模式
    Java经典设计模式之七大结构型模式
    java多线程快速入门(十二)
    java多线程快速入门(十一)
    java多线程快速入门(十)
    java多线程快速入门(九)
    java多线程快速入门(八)
  • 原文地址:https://www.cnblogs.com/du-jun/p/9662941.html
Copyright © 2011-2022 走看看