python 中元组 (tuple) 的超详细说明

元组(tuple)

Python 的元组与列表类似,不同之处在于元组不能对其元素进行直接的修改

但是元组整个可以重新定义、删除。

有关列表和元组的不同,以及为什么要创立两种很相似的类型,可以问GPT。

一、定义元组

小括号(圆括号)括起来,元素用逗号隔开

  • 定义一个空元组:

    tuple = ()
    
  • 定义一个非空元组,元素只有一个

    tuple = (1,)
    

    元组中只包含一个元素时,需要在元素后面添加逗号 , ,否则括号会被当作运算符使用

  • 定义一个非空元组,元素不止一个

    tuple = (1,2,3)
    
  • 定义一个一行放不下的元组:

    tuple = ('good','bad','fat',
            'thin','fast')
    
  • 直接定义多维元组:

    heroInfos =(('魏','曹操',160.3),('蜀','刘备',177.1),('吴','周瑜',188.6))
    
  • 间接定义多维元组(元组嵌套):

    words = ('a', 'b', 'c')
    nums = (1, 2, 3)
    x = (words, nums)
    print(x)
    ——————————————————————————————————————————————————————————————————
    #输出结果为:
    (('a', 'b', 'c'), (1, 2, 3))
    

二、元组中元素可以包含什么?

元组中的元素不需要具有相同的类型

tuple1 = (1, 2, 3, 4, 5 ) #数值
tuple2 = ("a", "b", "c", "d") #字符串(不涉及嵌套的话,单引号、双引号都行)
tuple3 = ('Google', 'Runoob', 1997, 2000) #字符串和数值

三、访问

要使用 [] 包裹索引数。

  • 正向索引:

    与字符串的索引一样,元组正向索引从 0 开始,第二个索引是 1,依此类推。

    tuple = ('red', 'green', 'blue', 'yellow', 'white', 'black')
    print(tuple[0])
    print(tuple[1])
    print(tuple[len(tuple)-1]) #列表长度-1,即最后一个元素的索引index
    ——————————————————————————————————————————————————————————————————
    #输出结果为:
    red
    green
    black
    
  • 反向索引:

    反向索引从 -1 开始,最后一个为 -1,倒数第二个为 -2 ,以此类推。

    tuple = ('red', 'green', 'blue', 'yellow', 'white', 'black')
    print(tuple[-1])
    print(tuple[-2])
    ——————————————————————————————————————————————————————————————————
    #输出结果为:
    black
    white
    
  • 截取:

    tuple_new = tuple[start:end]

    结果也是一个元组!!

    左闭右开,能取到 tuple[start],但是取不到 tuple[end],成员数:end-start。

    ①正向索引截取:

    nums = (10, 20, 30, 40, 50, 60, 70, 80, 90)
    print(nums[0:4])
    ——————————————————————————————————————————————————————————————————
    #输出结果为:
    (10, 20, 30, 40)
    

    ②反向索引截取:

    也是按照数学上负数的大小,左小右大。

    nums = (10, 20, 30, 40, 50, 60, 70, 80, 90)
    print(nums[-3:-1])
    ——————————————————————————————————————————————————————————————————
    #输出结果为:
    (70, 80)
    

    ③混合正向反向索引截取:

    nums = (10, 20, 30, 40, 50, 60, 70, 80, 90)
    print(nums[1:-2])
    ——————————————————————————————————————————————————————————————————
    #输出结果为:
    (20, 30, 40, 50, 60, 70)
    
  • 多维元组访问:

    tuple = (('human','man',14),('animal','dog',2))
    print(tuple[0][1])
    ——————————————————————————————————————————————————————————————————
    #输出结果为:
    man
    
    tuple = (('human','man',14),('animal','dog',2))
    print(tuple[0])
    ——————————————————————————————————————————————————————————————————
    #输出结果为:
    ('human', 'man', 14)
    
  • 如果要把元组和字符串放在一块打印输出,那么要用str()包裹元组,将它转换为字符串类型。

    tuple = (('human','man'),('animal','dog'))
    print(str(tuple)+'good') # print(tuple+'good') ×
    ——————————————————————————————————————————————————————————————————
    #输出结果为:
    (('human', 'man'), ('animal', 'dog'))good
    

四、元组运算符、删除、重定义

  • 运算符:

    元组中, +* 的操作符与字符串相似。+ 号用于组合元组,* 号用于重复元组。

    python表达式结果描述
    a = (1, 2, 3)
    b = (4, 5, 6)
    c = a+b
    c = (1, 2, 3, 4, 5, 6)组内组合
    a = (1, 2, 3)
    b = (4, 5, 6)
    a += b
    a = (1, 2, 3, 4, 5, 6)组内组合
    (‘Hi!’,) * 4
    单个元素记得后加逗号
    (‘Hi!’, ‘Hi!’, ‘Hi!’, ‘Hi!’)组内重复
    3 in (1, 2, 3)True查询元素是否存在于元组中
  • 删除元组:

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

    del tuple
    

    元组被删除之后,就查询不到了。

  • 重新定义元组:

    nums = (10, 20, 30, 40, 50, 60, 70, 80, 90)
    print(nums)
    nums = ('a','b') # 重定义元组
    print(nums)
    ——————————————————————————————————————————————————————————————————
    #输出结果为:
    (10, 20, 30, 40, 50, 60, 70, 80, 90)
    ('a', 'b')
    

五、内置函数

Python元组包含了以下内置函数:

序号方法及描述
1len(tuple)
计算元组元素个数。
2max(tuple)
返回元组中元素最大值。
3min(tuple)
返回元组中元素最小值。
4tuple(iterable)
将可迭代系列转换为元组,iterable可为列表。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值