zoukankan      html  css  js  c++  java
  • python 数据结构--Tuple(元组)

    1 Tuple(元组)

    Python的元组与列表类似,不同之处在于元组的元素不能修改(前面多次提到的字符串也是不能修改的)。创建元组的方法很简单:如果你使用逗号分隔了一些值,就会自动创建元组。

    1.1 创建元组

    1,2,3
    
    (1, 2, 3)
    
    ('hello', 'world')
    
    ('hello', 'world')
    
    () #  空元组
    
    ()
    
    (1,) #  逗号不能少
    
    (1,)
    
    tuple('hello,world')  # tuple 函数创建元组
    
    ('h', 'e', 'l', 'l', 'o', ',', 'w', 'o', 'r', 'l', 'd')
    
    # tuple('hello','world')
    #---------------------------------------------------------------------------
    #TypeError                                 Traceback (most recent call last)
    #<ipython-input-13-b3c1d433db80> in <module>()
    #----> 1 tuple('hello','world')
    #
    #TypeError: tuple() takes at most 1 argument (2 given)
    
    tuple(['hello', 'world'])
    
    ('hello', 'world')
    

    1.2 元组的基本操作

    1.2.1 访问元组

    mix = (123,456,'hello','apple')
    
    mix[1]
    
    456
    
    mix[0:3]
    
    (123, 456, 'hello')
    

    1.2.2 修改元组

    元组中的元素值不允许修改,但可以对元组进行连接组合。

    a = (123,456)
    b = ('abc','def')
    a+b
    
    (123, 456, 'abc', 'def')
    

    1.2.3 删除元组

    元组中的元素值不允许删除,但可以使用del语句删除整个元组。

    num = (1,2,3,4,5,6)
    # del num[1]    #TypeError: 'tuple' object doesn't support item deletion
    del num
    # num          # NameError: name 'num' is not defined
    

    1.2.4 元组索引、截取

    因为元组也是一个序列,所以可以访问元组中指定位置的元素,也可以截取索引中的一段元素

    string = ('number','string', 'list', 'tuple','dictionary')
    
    string[2]
    
    'list'
    
    string[-2]
    
    'tuple'
    
    string[2:-2]
    
    ('list',)
    

    1.2.5 元组内置函数

    Python元组提供了一些内置函数,如计算元素个数、返回最大值、返回最小值、列表转换等函数。

    tup = (1,2,3,4,5,6,7,8,9,10)
    
    
    len(tup)
    
    10
    
    max(tup)
    
    10
    
    min(tup)
    
    1
    
    num = [1,2,3,4,5]
    tup = tuple(num)
    tup
    
    (1, 2, 3, 4, 5)
    

    1.3 元组和列表的区别

    因为元组不可变,所以代码更安全。如果可能,能用元组代替列表就尽量用元组。列表与元组的区别在于元组的元素不能修改,元组一旦初始化就不能修改。

    t = ('a','b',['A','B'])
    t
    
    ('a', 'b', ['A', 'B'])
    
    t[2]
    
    ['A', 'B']
    
    t[2][0]
    
    'A'
    
    t[2][1]
    
    'B'
    
    t[2][0] = 'X'  
    t[2][1] = 'Y'
    t[2]
    
    ['X', 'Y']
    

    元组的第三个元素为t[2],t[2] 是一个列表,修改时,是修改的列表中的值,这个列表还是原来的列表,及元组中的值不变,变化的是列表中到的元素。

    1.4 元组和列的相互转化

    tup =  (1,2,[3,4],(5,6))
    tup
    
    (1, 2, [3, 4], (5, 6))
    
    list(tup)
    
    [1, 2, [3, 4], (5, 6)]
    
    list(tup[3])
    
    [5, 6]
    
    tuple(list(tup))
    
    (1, 2, [3, 4], (5, 6))
    
    tuple(tup[2])
    
    (3, 4)
  • 相关阅读:
    BZOJ1527 : [POI2005]Pun-point
    2016-2017 ACM-ICPC Southwestern European Regional Programming Contest (SWERC 2016)
    2016-2017 ACM-ICPC Northwestern European Regional Programming Contest (NWERC 2016)
    NAIPC-2016
    BZOJ2498 : Xavier is Learning to Count
    ACM ICPC Vietnam National Second Round
    XVI Open Cup named after E.V. Pankratiev. GP of Ukraine
    XVI Open Cup named after E.V. Pankratiev. GP of Peterhof
    HDU5509 : Pattern String
    BZOJ4583 : 购物
  • 原文地址:https://www.cnblogs.com/sinlearn/p/12665363.html
Copyright © 2011-2022 走看看