zoukankan      html  css  js  c++  java
  • 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))
    

      执行结果:

      

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

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

  • 相关阅读:
    [Oracle][Partition][Controlfile]Partition 操作是否和 Controlfile有关?
    [Oracle]如何观察Table 的各种Lock 之间的冲突
    [Oralce][InMemory]如何确定一个表已经被Populate 到In Memory 中?
    Arduino和C51之串口通信
    XC文件管理器-打造优美易用的文件管理器
    Android 控件进阶修炼-仿360手机卫士波浪球进度控件
    Android控件进阶-自定义流式布局和热门标签控件
    Windows开发之VC++仿QQ迷你首页(迷你资讯)
    Android自定义控件进阶-打造Android自定义的下拉列表框控件
    Android 自定义控件-高仿猎豹清理大师自定义内存开口圆环控件
  • 原文地址:https://www.cnblogs.com/wx170119/p/14429315.html
Copyright © 2011-2022 走看看