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
  • 相关阅读:
    HDU 2116 Has the sum exceeded
    HDU 1233 还是畅通工程
    HDU 1234 开门人和关门人
    HDU 1283 最简单的计算机
    HDU 2552 三足鼎立
    HDU 1202 The calculation of GPA
    HDU 1248 寒冰王座
    HDU 1863 畅通工程
    HDU 1879 继续畅通工程
    颜色对话框CColorDialog,字体对话框CFontDialog使用实例
  • 原文地址:https://www.cnblogs.com/du-jun/p/9662941.html
Copyright © 2011-2022 走看看