[快学Python3]Tuple(元组)

时间:2022-05-07
本文章向大家介绍[快学Python3]Tuple(元组),主要内容包括内置函数、切片、合并、删除、运算、列表转元组、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。

概述

元组,使用小括号()来标识,其特点是:元组中的元素不可修改

下面我们看下如何创建元组的示例:

tuple1 = (u'DeepTest', u'开源优测', u'1')

tuple2 = (1, 2, 3, 4, 5)

tuple3 = ("a", "b", "c", "d", "e")

内置函数

Python中常用的内置函数有:

  • len 用于计算元组元素的个数
  • max 返回元组中元素最大值
  • min 返回元组中元素最小值
  • tuple 将列表转换成元组

下面我们一起看看上述四个函数的示例:

# -*- coding:utf-8 -*-

__author__ = u'苦叶子'

if __name__ == "__main__":
    tuple_demo = (1, 2, 3, 4, 5, 6, 7, 8, 9, 0)    
    
    # 计算tuple_demo中元素个数
    print(len(tuple_demo))    

    # 返回tuple_demo中最大值的元素
    print(max(tuple_demo))    

    # 返回tuple_demo中最小值的元素
    print(min(tuple_demo))    
    
    # 将list转换成元组
    list_demo = [1, 2, 3, 4, 5, 6]
    tuple1 = tuple(list_demo)    

    # 打印转换后的元组
    print(tuple1)

运行结果如下:

10
9
0
(1, 2, 3, 4, 5, 6)

切片

因为元组也是一个序列,所以我们可以使用Python的切片机制来访问元组中指定位置的元素,也可以截取其中的一段元素。

下面我们一起看看切片操作的示例:

# -*- coding:utf-8 -*-

__author__ = u'苦叶子'

if __name__ == "__main__":
    print(u"元组切片操作示例!")

    data_demo = (u"DeepTest", u"appium", u"testingunion.com", u"hello", u"python3")    

    # 读取第二个元素appium, 注意索引下标从0开始
    e = data_demo[1]
    print(e)    

    # 读取倒数第二个hello
    e = data_demo[-2]
    print(e)    
    
    # 切片,截取从第2个元素开始后的所有元素
    e = data_demo[1:]
    print(e)    

    # 切片,截取第2-4个元素
    e = data_demo[1:4]
    print(e)

执行结果如下

元组切片操作示例
appium
hello
('appium', 'testingunion.com', 'hello', 'python3')
('appium', 'testingunion.com', 'hello')

对上面的代码小结一下:

  • 元组可以通过下标索引的方式来读取元素
  • 元组可以通过负数下标索引的方式反向读取元素
  • 元组可以通过 起始:终止 方式截取一段元素

合并

元组的元素的特性:不可修改。但我们可以对元组进行合并或是连接生成新的元组,代码示例如下:

# -*- coding:utf-8 -*-

__author__ = u'苦叶子'

if __name__ == "__main__":
    print(u"元组合并或连接操作示例!")
    tup1 = (u"DeepTest", u"appium")
    tup2 = (u"testingunion.com", u"hello", u"python3")   
 
    # 合并成新的元组
    tup3 = tup1 + tup2  
   
    # 打印看看效果
    print(tup1)
    print(tup2)
    print(tup3)

删除

元组的元素的特性:不可修改。意味着我们不可以删除单个元素,但可以把元组给删除,示例如下:

# -*- coding:utf-8 -*-

__author__ = u'苦叶子'

if __name__ == "__main__":
    print(u"元组合并或连接操作示例!")
    tup1 = (u"DeepTest", u"appium")
    print(tup1)    

    # 删除元组
    del tup1
    print(tup1)

执行上述代码会出什么情况呢?

会提示输出异常信息,提时:

NameError: name 'tup1' is not defined

运算

元组和字符串一样可以使用+或*进行运算,经过运算后可以生成一个新的元组。

# -*- coding:utf-8 -*-

__author__ = u'苦叶子'

if __name__ == "__main__":
    print(u"元组运算示例")
    tup1 = (u"DeepTest", u"开源优测")
    tup2 = (1, 2, 3, 4)    
    
    # 计算元组长度
    print(len(tup1))    

    #  元组连接
    tup3 = tup1 + tup2
    print(tup3)    
    
    # 元组复制
    tup4 = tup1 * 2
    print(tup4)    
    
    # 判断元素是否在元组中, 是则返回True, 否则返回
    result = 5 in tup2
    print(result)    
    
    # 遍历元组
    for t in tup2:
        print(t)

列表转元组

使用内置函数tuple将list转换成元组,代码示例如下:

# -*- coding:utf-8 -*-

__author__ = u'苦叶子'

if __name__ == "__main__":    
    # 将list转换成元组
    list_demo = [1, 2, 3, 4, 5, 6]
    tuple1 = tuple(list_demo)   
     
    # 打印转换后的元组
    print(tuple1)