今日内容:    1、元组    2、字典    3、集合

一、元组 tuple    1、定义:        t = ()        tuple(t)        print(type(t))        RUN====》        <class 'tuple'>

    参数为for可以循环的对象(可迭代对象)的数据类型可以被定义成元组        t1 = tuple('123')        print(t1,type(t1))        t2 = tuple([1,2,3])        print(t2,type(t2))        t3 = tuple({'name': 'egon'})        print(t3,type(t3))        t4 = tuple((1,2,3))        print(t4,type(t4))        RUN====》        ('1', '2', '3') <class 'tuple'>        (1, 2, 3) <class 'tuple'>        ('name',) <class 'tuple'>        (1, 2, 3) <class 'tuple'>

    定义只有一个值的元组:        # 把字符串'egon'定义成tuple        print(tuple('egon',))        print(tuple(['egon'])        RUN====》        ('Owen',)        ('Owen',)

    2、特性        有序存储 | 可存放多个数据 | 不可变(内部可以包含可变对象,可变对象依旧可变)

    3、常用操作:        3.1 索引取值            t = (1,2,3,4,5)            print(t[2])            RUN====》            3

        3.2 切片            t = (1,2,3,4,5)            print(t[::1])            print(t[-1:-4:-1])            RUN====》            (1, 2, 3, 4, 5)            (5, 4, 3)

        3.3 长度 len            t = (1,2,3,4,5)            print(len(t))            RUN====》            5

    4、元组内置方法        4.1 计数 count            t = (1,2,3,2,5)            print(t.count(2))            RUN====》            2

        4.2 查找索引 index            t = (1,2,3,2,5)            print(t.index(2))            print(t.index(2,0,3))            RUN====》            1            3

二、字典 dict    1、定义        {} | dict()        dic = {'name’: 'egon', 'age': '18'}        print(type(dic))        dic = dict({'name’: 'egon', 'age': '18'})        print(type(dic))        RUN====》        <class 'dict'>        <class 'dict'>

    2、特性        字典是无序的        可以存放多个值        字典是可变的        可以通过key来取值

    3、常用操作        # 增删改查:        增:            dic = {'name': 'egon', 'age': '18'}            dic['name'] = 'owen'            print(dic)            dic['sex'] = 'fame'            print(dic)            RUN====》            {'name': 'owen', 'age': '18'}            {'name': 'owen', 'age': '18', 'sex': 'fame'}

        # 取,如果key存在就报错,所以用get(key, defalut)            dic = {'name': 'egon', 'age': '18'}            print(dic['name'])            print(dic['sex'])            print(dic.get('sex'))            RUN====》            egon            报错;            None

        删:            pop(key): 根据key删且返回对应value

        改:            dic = {'name': 'egon', 'age': '18'}            dic.update({'name': 'owen', 'sex': 'fame'})            # key已存在则更新所对应的value,无则新增key_value对            print(dic)            RUN====》            {'name': 'owen', 'age': '18', 'sex': 'fame'}

        查:只查key,只查value,查key_value对            dic = {'a': 10, 'b': 20, 'c': 30}            values = dic.values()            print(values, type(values))            # 存放key的集合            keys = dic.keys()            print(keys, type(keys))            # 存放key-value的键值对关系            k_vs = dic.items()            print(k_vs, type(k_vs))            '''            dic.values() | dic.keys() | dic.items()            不是原生list,不能直接索引取值,但可以for循环取值            '''            vs = list(values)            for v in vs:                print(v)            for k in keys:  # 输出结果跟直接遍历字典是一样的            print(k)            for k, v in dic.items(): # ***** 同时遍历k和v            print(k,v)            RUN====》            dict_values([10, 20, 30]) <class 'dict_values'>            dict_keys(['a', 'b', 'c']) <class 'dict_keys'>            dict_items([('a', 10), ('b', 20), ('c', 30)]) <class 'dict_items'>            10            20            30            a            b            c            a 10            b 20            c 30

    4、案例        # 不区分大小写,计算每一个名字出现的次数,记录在字典中        方法一:        ls = ['Owen', 'owen', 'Egon', 'LiuXX', 'Liuxx', 'egon', 'egon']        # {'owen': 2, 'egon': 3 ...}        name_dic = {}        for name in ls:            # 名字全小写,不用区分大小写            name = name.lower()            # 名字是否在字典中存在:存在 - 次数+1 | 不存在 - 添加并设置初值1            if name not in name_dic:                # 不存在                name_dic[name] = 1            else:                # 存在                name_dic[name] += 1        print(name_dic)

        方法二:        ls = ['Owen', 'owen', 'Egon', 'LiuXX', 'Liuxx', 'egon', 'egon']        name_dic = {}        for name in ls:            name = name.lower()            # name已存在,不管,不存在,初始化指定key:name值为1            name_dic.setdefault(name, 0)            name_dic[name] += 1        print(name_dic)

三、集合 set    1.定义        s1 = set()        s2 = set({1, 2, 3})

    2.重点:数据具有唯一性 (*****)        # i) 单列数据集合:str,list,tuple,set    双列:dict        # ii) 无序存储:无key无index(索引),无法取值        # iii) 可变数据类型,内部可以存放任意类型数据,但数据具有唯一性

    3、常用操作:        # 添加删除操作        s = set()        s.add('abc')        s.add('xyz')        print(s)        res = s.pop()  # 随机删除一个ele元素        print(res)        if 'xyz' in s:            s.remove('xyz')  # 有ele删除,无ele抛异常

    4.运算        p_set = {'a', 'b', 'c', 'egon'}        l_set = {'x', 'y', 'z', 'egon'}        # 以下运算都基于上面两条        # 交集 &            # res = p_set & l_set            print(res)            res = p_set.intersection(l_set)            print(res)  # {'egon'}

        # 并集            res = p_set | l_set            print(res)            res = p_set.union(l_set)            print(res)  # {'z', 'c', 'y', 'x', 'b', 'a', 'egon'}

        # 差集            res = p_set - l_set            print(res)  # {'a', 'b', 'c'}            res = l_set.difference(p_set)            print(res)  # {'x', 'z', 'y'}

        # 对称差集            res = p_set ^ l_set            print(res)            res = p_set.symmetric_difference(l_set)            print(res)  # {'y', 'a', 'b', 'x', 'z', 'c'}

    5、案例与应用场景        # 选课:        class_map = [            ('owen', 'python'),            ('egon', 'linux'),            ('egon', 'python'),            ('liuxx', 'python'),            ('liuxx', 'java')        ]        # 需求:        # 1.多少人参加了选课: ['owen', 'egon', 'liuxx']        # 2.都选了哪些课程: ['python', 'linux', 'java']        # 利用逻辑代码去重

        names = []        for name, _ in class_map:            # 判断列表中是否已存在,不存在才添加            if name not in names:                names.append(name)        print(names)

        # 利用set去重        classes = set()        for _, cless in class_map:            classes.add(cless)        classes = list(classes)        print(classes)

    了解:父子set        sup_set = {1, 2, 3, 4, 5}        sub_set = {1, 2, 3}        temp_set = {3, 2, 1}        flag_set = {7, 8, 9}

        print(sup_set > sub_set)  # True        print(sup_set < sub_set)  # False        print(temp_set == sub_set)  # True        # 两个set是否没有交集        res = flag_set.isdisjoint(temp_set)  # True

转载于:https://www.cnblogs.com/shuchengyi/articles/10595578.html

3.25Day06元组、字典、集合常用及内置方法相关推荐

  1. Python中常用的内置方法

    Python中常用的内置方法: 比较大小.求和 如下所示: 代码块: #枚举:返回索引值和对应的value值for i,v in enumerate('westos'):print(i,v)#zips ...

  2. python 类调用不存在的方法_[python] 类常用的内置方法

    内置方法 说明 __init__(self,...) 初始化对象,在创建新对象时调用 __del__(self) 释放对象,在对象被删除之前调用 __new__(cls,*args,**kwd) 实例 ...

  3. python 类的内置方法_【转】[python] 类常用的内置方法

    原文:http://xukaizijian.blog.163.com/blog/static/170433119201111894228877/ 内置方法 说明 __init__(self,...) ...

  4. python学习笔记:(三)list(列表)常用的内置方法

    list(列表)包含一些内置的方法,以下为详细介绍: (方法调用:对象.方法(参数)) 1.append() 在列表的末尾添加新的对象 如: lst=[1,2,3] lst.append(4) --- ...

  5. python中常用的内置方法(min,max,sum,梅举,zip)

  6. python的内置字典数据类型_python 数据类型元组与字典内置方法

    1.元组 (1)元组是不可变的列表,能存多个值:如果多个值只有取得需求,没有改的需求,用元组最合理 (2)定义:在()内用逗号隔开,可以存任意类型的值 注意:当元组只有一个元素时,要在后面加逗号 # ...

  7. Python基础总结之常用内置方法总结

    文章目录 前言 1.str 1.1.内置方法: 1.2.常用的内置方法 1.3.String模块的一些方法 2.list 2.1.内置方法 2.2.常用内置方法 3.tupple 3.1.内置方法 3 ...

  8. 元组tuple类型内置方法

    目录 元组tuple类型内置方法 用途 定义 常用操作+内置方法 优先掌握 存一个值or多个值 有序or无序 可变or不可变 元组tuple类型内置方法 元组是不可变的列表,在定义完成后后面就不可以进 ...

  9. 数字、字符串、列表类型及常用内置方法

    目录 可变不可变类型 基本数据类型及内置方法 数字类型 整型 浮点型 数字类型总结 字符串类型 字符串类型的常用操作+内置方法 字符串类型总结 列表类型 列表类型的常用操作+内置方法 列表类型总结 可 ...

最新文章

  1. 7-31 字符串循环左移 (C语言)
  2. linux top 报错 TERM environment variable not set.
  3. 【数据库】Navicat Premium12远程连接MySQL数据库
  4. IE6下margin-left双倍bug问题
  5. [ZJJOI2013]K大数查询 整体二分
  6. 大数据分析实战-信用卡欺诈检测
  7. laravel 定时任务问题的总结
  8. 事务回退机制 android,【Android基础】——Fragment-使用方法
  9. Lucene.Net 3.0.3如何从TokenStream中获取token对象
  10. 码农翻身之编程语言的巅峰
  11. c语言怎样设计程序界面,「分享」C语言如何编写图形界面
  12. 计算机室和电子备课室管理制度,电子备课室管理制度
  13. anylogic中编写java代码_anylogic 使用
  14. C语言中文网设计模式,C语言和设计模式(访问者模式)
  15. 使用bundletool从.aab构建安装.apks
  16. 虹科案例 | 利用激光测距传感器进行锯齿定位
  17. OpenCV的本地相机抓图和本地视频取帧
  18. 七牛---借助第三方平台实现移动直播
  19. linux下用mpg123听音乐
  20. 面对转行后产生的挫败感该怎么办?

热门文章

  1. 3年测试经验的文艺青年,从京东测试团队浅谈纯功能测试人员该何去何从?
  2. Keil5.15使用GCC编译器链接.a库文件
  3. Swift 基本基本运算符
  4. 【转】微信公共号开发,提示“该公众号暂时无法提供服务,请稍后再试”,如何解决?...
  5. Forbid consumer 192.168.85.1 access service com.sharearn.dubbo.romote.TestService from registry
  6. Servlet初始化与异步支持
  7. Spring多数据源配置和使用
  8. MongoDB复合索引详解
  9. 刘光毅:频谱统一推进5G尽早商用 4G网络向5G平滑演进
  10. 如果你的Windows无法连接L2TP协议的***,809错误