• Python学习系列之元组(十五)


    一、什么是元组

    1.元组

    Python内置的数据结构之一,是一个不可变序列

    2.元组数据结构

    元组是使用()定义

    3.不可变序列与可变序列

    不可变序列:字符串、元组

      不可变序列没有增、删、改的操作

    可变序列:列表、字典

      可变序列可以对序列执行增、删、改操作,对象地址不发生改变

    举例:

    '''可变序列:列表、字典'''
    lst=[10,20,45]
    print(id(lst))
    lst.append(300)
    print(id(lst))
    

      执行结果:

     结果显示:可变序列变更后,其内存地址是没有变化的

    '''不可变序列:字符串、元组'''
    s='hello'
    print(id(s))
    s=s+'world'
    print(id(s))
    print(s)
    

      执行结果:

     结果表示:对不可变序列进行操作后,其内存地址会变成新的的内存地址

    二、元组的创建方式

    1.元组的创建方式有两种

    • 第一种是直接使用()

        例如:t=('Python','world',98)

    • 第二种是使用内置函数tuple()

        例如:t=tuple(('Python','world',98))

    • 只包含一个元组的元素需要使用逗号和小括号

        例如:t=(10,)

      如果不加逗号,则变量t的类型是str非元组类型

    举例:

    #元组的创建方式
    '''第一种创建方式,使用()'''
    t=('Python','world',98)
    print(t)
    print(type(t))
    
    '''第二种创建方式,使用内置函数tuple()'''
    t1=tuple(('Python','world',98))
    print(t1)
    print(type(t1))
    

      执行结果如下:

    '''创建只有一个元素的元组'''
    t2=('Python')
    print(type(t2))
    t3=('Python',)      #如果元祖中只有一个元素时,逗号不能省
    print(type(t3))

      执行结果如下:

    三、为什么要将元组设计成不可变序列

    为什么要将 元组设计成不可变序列

    • 在多任务环境下,同时操作对象时不需要加锁
    • 因此,在程序中尽量使用不可变序列

    注意事项:元组中存储的是对象的引用

          a)如果元组中的对象本身不可变对象,则不能再引用其它对象

          b)如果元组中的对象时可变对象,则可变对象的引用不允许改变,但数据可以改变

    图示举例:

     代码举例:

    '''元组的不可变序列'''
    t=(10,[20,30],9)
    print(t[0],type(t[0]),id(t[0]))
    print(t[1],type(t[1]),id(t[1]))
    print(t[2],type(t[2]),id(t[2]))
    print(type(t))
    
    '''给元组中列表元素新增内容'''
    #t[1]=100    #元组中的引用是不能被修改的,如此写会报错
    t[1].append(100)    #元组中的列表元素的内容可以被修改
    print(t[1],type(t[1]),id(t[1]))
    

      执行结果:

    四、元组的遍历

    • 元组是可迭代对象,所以可以使用for...in进行遍历

     代码举例:

    '''元组的遍历'''
    #t=(10,[20,30],9)
    '''第一种获取元组的方式,使用索引
    使用该方式需要知道元组的长度,如果超出长度则会报tuple index out of range'''
    # print(t[0])
    # print(t[1])
    # print(t[2])
    # print(t[3])
    
    '''第二种获取元组的方式,使用for循环,可以遍历出元组所有元素'''
    t=(10,[20,30],9)
    for item in t:
        print(item)
    

      执行结果如下:

    另:元组不会对重复的数据去重

    t=(1,2,2,3)
    print(t,type(t))
    

      执行结果:

      

    ----------------------------------------------------------------------------------------------------------------

    以上是元组的相关学习内容

  • 相关阅读:
    在rhel6上安装Python 2.7和Python 3.3
    RHEL7 -- Linux搭建FTP虚拟用户
    RHCE7 -- IPv6
    RHEL7 -- nmcli的使用
    设置Adobe Reader打开PDF文件保持记忆功能
    iptalbes -F
    服务器IP地址后修改SQL Server配置
    配置SELINUX
    11G新特性 -- 分区表和增量统计信息
    11G新特性 -- Statistics Preferences
  • 原文地址:https://www.cnblogs.com/wx170119/p/14429315.html
Copyright © 2020-2023  润新知