zoukankan      html  css  js  c++  java
  • 第八讲:元组

    元组

    说明:

    1. 元祖的元素的个数和值不能修改,不能再增加或删除,其他的运算操作同列表 
    2. 不可变的tuple有什么意义?因为tuple不可变,所以代码更安全。如果可能,能用tuple代替list就尽量用tuple。
    3. 如果用列表传参给一个函数,但是不想被调用的函数改变数据,可以将列表转换为元组再进行操作:tuple()
    4. tuple的陷阱:当你定义一个tuple时,在定义的时候,tuple的元素就必须被确定下来

    1、创建元组:

    tu=()

    元组只有一个元素时,后面需要加逗号”,“,因为‘abc’等同于('abc'),如

    tupe1=('abc',)

    2、(查)访问获取元组:通过下标索引获得,for遍历

    tup1 = ('physics', 'chemistry', 1997, 2000)
    tup2 = (1, 2, 3, 4, 5, 6, 7 )
    print ("tup1[0]: ", tup1[0])
    print ("tup2[1:5]: ", tup2[1:5])

    运行结果:
    tup1[0]:  physics
    tup2[1:5]:  (2, 3, 4, 5)

     for遍历:

    #遍历元组
    zoo = ('wolf', 'elephant', 'penguin')
    new_zoo = ('monkey', 'dolphin', zoo)
    for animal in zoo:
        print (animal)
    print ('-'*10)
    
    #遍历嵌套元组:
    for animal in new_zoo:
        if isinstance(animal,tuple):
            for newAnimal in animal:
                print (newAnimal)
        else:
            print (animal)


    运行结果:
    wolf
    elephant
    penguin
    ----------
    monkey
    dolphin
    wolf
    elephant
    penguin

    3、(改)元组中的元素值是不允许修改的,元组中的可变对象可以修改,可以对元组进行连接组合

    实例1:

    tup1 = (12, 34.56) tup2 = ('abc', 'xyz') tup3 = ('abc',['A','B','C']) # 以下修改元组元素操作是非法的,会报错 # tup1[0] = 100 # 创建一个新的元组 tup4 = tup1 + tup2 print (tup4) # 修改元组内的列表元素(list本身可变) tup3[1][0]='X' tup3[1][1]='Y' tup3[1][2]='Z' print (tup3)

    运行结果:
    (12, 34.56, 'abc', 'xyz')
    ('abc', ['X', 'Y', 'Z'])

    如果需要对元组的元素进行添加、修改操作,对元组进行列表转换操作,再对列表类型的元素操作:list()

    tup1 = ('physics', 'chemistry', 1997, [198,987,27], 2000)
    # 方法1:
    tup1[3].extend([123,12])    #extend(列表)
    print (tup1)
    # 方法2:
    tup1[3].append(123)         #append(元素)
    tup1[3].append(12)
    print (tup1)
    #方法3:
    for i in tup1:
        if isinstance(i,list):
            i.extend([123,12])
    print (tup1)


    运行结果:
    ('physics', 'chemistry', 1997, [198, 987, 27], 2000)

    4、(删)不能对元组进行修改:

    如下例子修改会报错:

    tup = ('physics', 'chemistry', 1997, 2000);
    print (tup)
    del tup
    print ("After deleting tup : " )
    print (tup)

    运行结果:
    ('physics', 'chemistry', 1997, 2000)
    Traceback (most recent call last):
    After deleting tup :
      File "E:/workplace/2019pratice/practice1.py", line 227, in <module>
        print (tup)
    NameError: name 'tup' is not defined

    5、元组运算符:

     

    6、元组的索引、截取:

    L = ('spam', 'Spam', 'SPAM!')

     7、元组的内置函数:(python3.7没有cmp函数)

  • 相关阅读:
    angular1.5 组件学习 -- 4.2、组件的其他属性 transclude
    angular1.5 组件学习 -- 4.1、组件的其他属性 require
    angular1.5 组件学习 -- 3、组件的生命周期钩子
    angular1.5 组件学习 -- 2.2、组件间的交互:子向父
    angular1.5 组件学习 -- 2.1、组件间的交互:父向子
    angular1.5 组件学习 -- 1、组件的基本结构
    android内存优化相关1
    Android快速开发系列 10个常用工具类
    android Activity的启动模式
    [转载]Android系统开机画面的实现
  • 原文地址:https://www.cnblogs.com/wenxiacui/p/10964047.html
Copyright © 2011-2022 走看看