• 【python百炼成魔】python之元组详解


    前言

    学习元组还是离不开列表,如果你还没有研究过列表,可以点击跳转到之前的文章:【python百炼成魔】python之列表详解

    学习完列表再回来看元组的内容,会对你学习元组有很大的帮助。
    在这里插入图片描述

    元组的概念

    元组的英文tuple,这个单词需要记得很熟。

    元组也是python的内置数据结构之一,是一个不可变序列。它是由一组逗号分隔的值组成,通常用圆括号进行包围。元组的特点是一旦创建就不可修改,即元组的值是不可变的。

    • 常见的不可变序列: 字符串,元组, 没有增删改的操作
    • 常见的可变序列: 列表,字典

    列表的元素可以修改,而元组的元素不可以修改,所以元组又成为不可变列表。

    虽然元组不可以修改,但可以查询: 元组可以包含不同类型的元素,如整数、浮点数、字符串等。元组可以通过索引访问其中的元素,索引从0开始,并且支持负数索引,表示从元组末尾开始逆向索引。

    元组的主要用途是将相关的值组合在一起,可以作为函数的返回值或者用于多个值的赋值操作。另外,元组也可以用作字典的键,因为字典的键必须是不可变的类型。

    元组的创建

    使用逗号分隔的值,可选地使用圆括号进行包围。

    1. 直接使用小括号来创建
      t=('python','hello',100)

    2. 使用内置函数tuple()来创建

    t=tuple(('i','love','python','mufenggorw'))
    
    print(t)
    
    • 1
    • 2
    • 3
    1. 空元组创建方式

    t=()
    t=tuple()

    创建案例:

    my_tuple = 1, 2, 3  # 不使用圆括号,逗号分隔的值创建元组
    print(my_tuple)  # 输出: (1, 2, 3)
    
    another_tuple = (4, 5, 6)  # 使用圆括号创建元组
    print(another_tuple)  # 输出: (4, 5, 6)
    
    • 1
    • 2
    • 3
    • 4
    • 5

    注意,如果要创建只包含一个元素的元组,需要在这个元素后面加个,

    single_tuple = (1,)  # 创建一个只包含一个元素的元组
    print(single_tuple)  # 输出: (1)
    
    print(type(single_tuple))
    
    • 1
    • 2
    • 3
    • 4

    为什么要将元组设置为不可变序列

    • 在多任务环境下,同时操作对象时候不需要加锁
    • 提高效率: 元组相较于列表对存储和处理的效率更高,特别是在处理大量数据的时候,可以节省系统资源
    • 确保数据安全:元组的不可变性,提供了数据的稳定性和安全性,避免了在某些情况下,数据被错误或恶意更改的风险。
    • 字典键的需求:Python的字典类型需要其键值(key)是不可变的,元组作为不可变类型可以被用作字典中的键。
    • 元素的唯一性与位置性:元组有序,元素之间的位置关系与元素的具体数据都是固定的,这使得元组在处理某些固定模式的数据时更加方便,例如在分解序列或者解包函数返回值的时候。

    读取元组中的元素

    元组作为可迭代对象,我们可以使用for in 进行遍历。

    方法一: 在知道多少个元素的情况下使用下标遍历

    t=tuple(('i','love','python','mufenggorw'))
    
    print(t[0])
    print(t[1])
    print(t[2])
    print(t[3])
    # print(t[4]) 一共0-3 四个元素,这个超出范围会报错
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    方法二: 使用for in 遍历

    t=tuple(('i','love','python','mufenggorw'))
    
    for item in t:
        print(item)
    
    • 1
    • 2
    • 3
    • 4

    元组的其他操作

    • 元组可以进行切片操作。
    • 列表中不涉及修改元素的方法都可用于元组,如len()函数、count()函数等。
    • 如果列表方法会对元素进行修改,那就不可用于元组,如append()函数、insert()函数等。
    # 定义一个元组
    fruits = ("apple", "banana", "cherry", "apple", "cherry")
    
    # 使用len()函数计算元组的长度
    length = len(fruits)
    print('Length of the tuple: ', length)
    
    # 使用count()函数计算特定元素在元组中的出现次数
    apple_count = fruits.count("apple")
    print('Count of apple: ', apple_count)
    
    # 切片操作,获得元组的部分元素
    slice_fruits = fruits[1:3]
    print('Slice of the tuple: ', slice_fruits)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    除此之外,还有一些其他的函数(只要不涉及到修改元素),可以与元组一起结合使用:

    • max(tuple): 返回元组中最大的元素。
      示例:
       numbers = (1, 2, 3, 4, 5)
       print('Max value: ', max(numbers))  # 输出:Max value: 5
    
    • 1
    • 2
    • min(tuple): 返回元组中最小的元素。
      示例:
       numbers = (1, 2, 3, 4, 5)
       print('Min value: ', min(numbers))  # 输出:Min value: 1
    
    • 1
    • 2
    • sum(tuple): 返回元组中所有元素的总和(只适用于数值类型的元组)。
      示例:
       numbers = (1, 2, 3, 4, 5)
       print('Sum of all numbers: ', sum(numbers))  # 输出:Sum of all numbers: 15
    
    • 1
    • 2
    • sorted(tuple): 返回元组元素的排序列表。
      示例:
       numbers = (5, 2, 3, 1, 4)
       print('Sorted tuple: ', sorted(numbers))  # 输出:Sorted tuple: [1, 2, 3, 4, 5]
    
    • 1
    • 2
    • any(tuple): 若元组中存在任何真值返回True,否则返回False。
      示例:
       values = (False, False, True, False)
       print('Any true in tuple: ', any(values))  # 输出:Any true in tuple: True
    
    • 1
    • 2
    • all(tuple): 若所有元组元素为真值返回True,否则返回False。
      示例:
       values = (True, True, True, True)
       print('All true in tuple: ', all(values))  # 输出:All true in tuple: True
    
    • 1
    • 2

    以上函数中,max()、min()、sum()只有在元组的元素是可比较的或者是数值类型的时候才能使用。sorted()函数返回的是一个列表,而不是元组。

    总结

    我是沐风晓月,我在csdn等你

    原创不易,还希望各位大佬支持一下 \textcolor{blue}{原创不易,还希望各位大佬支持一下} 原创不易,还希望各位大佬支持一下

    👍 点赞,你的认可是我创作的动力! \textcolor{green}{点赞,你的认可是我创作的动力!} 点赞,你的认可是我创作的动力!

    ⭐️ 收藏,你的青睐是我努力的方向! \textcolor{green}{收藏,你的青睐是我努力的方向!} 收藏,你的青睐是我努力的方向!

    ✏️ 评论,你的意见是我进步的财富! \textcolor{green}{评论,你的意见是我进步的财富!} 评论,你的意见是我进步的财富!

  • 相关阅读:
    yolov5 优化系列(三):修改损失函数
    浅谈一下:Java当作数组的几个应用场景
    实验六 TCP及应用分析
    misc学习(3)
    零售经营“新赛道” ——基于手机银行APP专区调研的客群精细化运营分析报告
    Kamiya丨Kamiya艾美捷人和动物LBP ELISA说明书
    c语言预处理及宏函数知识点总结
    半路入行网络安全,怎么学才不会走弯路
    字符(串)及内存操作库函数
    CSS(六)定位+元素的显示隐藏
  • 原文地址:https://blog.csdn.net/wisdom_futrue/article/details/131428805