元祖

作者: 妈耶0000 | 来源:发表于2019-07-08 11:50 被阅读0次
    1. 元祖是一种不可变的数据结构,一旦创建无法修改。但是如果元祖里面有可变的数据结构,比如 List。可以修改其中的 List 的值。
    1.元祖创建的方式
    >> tup = 7,8,9
    >> print(type(tup),tup)
    <class 'tuple'> (7, 8, 9)
    
    >> tup1 = (7,8,9),(1,2,3)
    >> print(type(tup1),tup1)
    <class 'tuple'> ((7, 8, 9), (1, 2, 3))
    
    
    
    2.使用tuple函数将任意序列转为元祖
    >> tup2 = tuple([4,5,6])
    >> print(type(tup2),tup2)
    <class 'tuple'> (4, 5, 6)
    
    >> tup3 = tuple('asd')
    >> print(type(tup3),tup3)
    <class 'tuple'> ('a','s','d')
    
    
    
    3.元祖不能修改,这里不演示了,
    但是可以修改里面可变数据结构的值
    
    a = tuple(['asd',[2,3],False])
    print(type(a),a)
    ('asd', [2, 3], False)
    
    修改[2,3]为[2,3,4]
    a[1].append(66)
    print(type(a),a)
    <class 'tuple'> ('asd', [2, 3, 66], False)
    
    
    
    2. 元祖的拆包
    1.非嵌套元祖的拆包
    >> tup = (6,7,8)
    >> a,b,c = tup
    >> print(a,b,c)
    6 7 8
    
    
    2.嵌套元祖的拆包
    >> tup = 9,10,(6,7,8)
    >> a,b,(c,d,e) = tup
    >> print(a,b,(c,d,e))
    9 10 (6, 7, 8)
    >> print(c,d,e)
    6 7 8
    
    
    3.利用拆包完成变量名的交换
    >> a,b = 1,2
    >> a
    1 
    >> b
    2
    
    >> b,a = a,b
    >> a
    2 
    >> b
    1
    
    
    4.利用拆包遍历序列
    >> seq = [(10,20,30),(40,50,60),(70,80,90)]
    >> for a,b,c in seq:
            print('a={0},b={1},c={2}'
                      .format(a,b,c))
    
    a=10,b=20,c=30
    a=40,b=50,c=60
    a=70,b=80,c=90
    
    
    5.rest类型的拆包
    >> value = 9,8,7,6,5,4
    >> a,b,*rest = value
    >> print('a={0},b={1},rest={2}'
                .format(a,b,rest))
    a=9,b=8,rest=[7, 6, 5, 4]
    
    
    6.count方法
    >> a = (2,2,2,1,1,3)
    >> print(  a.count(2)  )
    3
    
    

    欢迎关注 知乎@Overfitting

    相关文章

      网友评论

          本文标题:元祖

          本文链接:https://www.haomeiwen.com/subject/dconhctx.html