Tuple 元组


一、什么是元组 ?

  •         列表属于可变序列,可以任意修改列表中的元素。

            元组的访问和处理速度比列表快。

            元组属于不可变序列,不能修改元组中的元素,因此,元组没有增加元素,修改元素,删除元素相关的方法。
    • 因此,只需要学习元组的创建和删除,元组中元素的访问和计数即可,元组支持如下操作

        1. 索引访问
        1. 切片操作
        1. 链接操作
        1. 成员关系操作
        1. 比较运算符
        1. 计数:元组长度len(),最大值max(),最小值min(),求和sum(),等

注意:元组的元素不能修改
  • 元组不可向列表一样通过下标去修改列表中的数据,如果直接修改会报出异常
    • 	a = (20,30,9,8,3)
      	a = [0]
      	a[3]=33 #异常
      

元组的元素访问和列表一样,如果是单个元素是具体的数据,如果是范围访问返回的仍然是元组对象
  • 	a=(20,10,30,9,8)
    	print(a[1])
    	print(type(a[1]))
    	print(a[1:3])
    	print(type(a[1:3]))
    	print(a[1:3])
    	print(a[:4])
    	print(a[::-1])
    
    • 运行结果:
      在这里插入图片描述


二、元组的具体操作


2.1 创建元组

  • 通过 “()” 创建元组,(小括号可以省略)

    • 		a=(10,20,30) 
      		# 或者 
      		a=10,20,30
      
      • 注意:如果元组中只有一个元素,则必须后面加逗号,这是因为解释器会把(1)解释为整数1,而 (1,)解释为元组

      • 	a = (1,) # 或者  a =1,
        	# 但是需要注意的是
        	a = (1) #这种写法并不是元组  如果元组里面只有一个元素要在最后面加,
        	print(type(a))
        

  • 通过 “tuple()” 函数创建(tuple(可迭代的对象)

    • 	b=tuple() #创建一个空元组对象
      	print(b)
      	b=tuple("abc")  # 创建一个元组对象,并根据传入的字符串迭代成元组
      	print(b)
      	b=tuple(range(3)) # 创建一个元组对象,并传入下标从0到3 在元组中迭代三个数字
      	print(b)
      	b=tuple([2,3,4]) # 创建一个元组对象,并传入列表在元组中把内容迭代出来
      	print(b)
      
      • 运行结果
        在这里插入图片描述

2.1.1 tuple() 创建元组函数和 list() 创建列表函数总结

  •         tuple() 可以接收列表,字符串,其他序列类型,迭代器生成元组
  •         list() 可以接收元组,字符串,其他序列类型,迭代器等生成列表


2.2 元组的元素访问操作

index(): 获取元素的下标
  • 	a=(20,10,30,9,8)
    	print(a.index(10))
    
    • 运行结果:1

count(): 获取元素在元组中出现的次数
  • 	a=(20,10,30,9,8,10)
    	print(a.count(10))
    
    • 运行结果:2

sorted(): 将元组中的数据进行排序,输出成一个新的列表对象
  • 列表关于排序的方法list.sorted()是修改原列表对象,元组没有该方法,如果对元组排序,只能使用内置函数sorted(tupleObj),并生成新的列表对象

  • 	a=(20,10,30,9,8)
    	print(sorted(a))
    
    • 运行结果:[8, 9, 10, 20, 30]

+ : 元组的拼接,元组可以直接用 “ + ” 拼接,将两个元组中的数据拼接成一个元组
  • 		a = (1, 20)
    		b = (30, 20)
    		print(a+b)
    
    • 运行结果:(1, 20, 30, 20)


2.3 元组的元素计数操作

len():获取元组的长度
max(): 获取元组中最大值
min(): 获取元组中最小值
sum ():获取元组中全部元素相加的总和
  • 代码示例

    • 	a=(20,10,30,9,8)
      	# 因为获取出的结果为 int 类型,需要使用类型转换打印输出,使结果更加直观
      	print("获取元组长度:" + str(len(a)))
      	print("获取元组最大元素" + str(max(a)))
      	print("获取元组最小元素:" + str(min(a)))
      	print("计算元组中全部元素的总和:" + str(sum(a)))
      
      • 运行结果:**(1, 20, 30, 20)**


2.4 zip 对象

zip(obj obj):将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表
  •  	a = [1,2,3]
     	b = ['a','b','c']
     	c = [1.03,2.65,5.89]
     	
     	d = zip(a,b,c) # 将列表存储进 zip 对象当中
     	e = zip(a,b,c)
     	
     	print(type(d)) # 打印当前对象类型
     	print(tuple(d)) # 将对象存储进元组中,并将对象中的元素迭代入元组当中
     	print(list(e)) # 将对象存储进元组中,并将对象中的元素迭代入列表当中
    
    • 运行结果:
      在这里插入图片描述
### Python Tuple 元组的特性 Tuple 是一种不可变序列,属于内置数据结构之一。一旦创建后,其内部元素无法被修改、删除或重新赋值[^1]。这种特性使得元组非常适合用来存储固定不变的数据集合。 #### 创建方式 Python 提供了多种方法来创建元组: - **使用圆括号 ()** 可以通过 `( )` 来定义一个元组,并将其赋值给变量。例如: ```python my_tuple = (1, 'apple', True) ``` - **省略圆括号的方式** 如果上下文中不会引起歧义,也可以不写圆括号: ```python another_tuple = 2, 'banana', False ``` 对于单元素元组,需要注意在元素后面加上逗号 `,`,否则会被解释为普通表达式而非元组: ```python single_element_tuple = ('only',) ``` #### 存储功能 元组可以用于存储多个相关的值,这些值可以是不同类型的组合。例如,可以用元组表示一个人的信息,包括姓名、年龄和性别等属性[^3]: ```python person_info = ("Alice", 25, "Female") ``` ### 基本操作 以下是常见的元组操作及其说明: - **索引访问** 支持通过索引来获取特定位置上的元素,索引从 `0` 开始计数: ```python first_item = person_info[0] # 获取第一个元素 "Alice" last_item = person_info[-1] # 获取最后一个元素 "Female" ``` - **切片操作** 利用切片语法提取子集部分: ```python sub_tuple = person_info[1:] # 返回 ('25', 'Female') ``` - **遍历元组** 使用循环语句逐一处理其中的每一项: ```python for item in person_info: print(item) ``` 尽管元组本身不可更改,但如果某一项是指向可变对象(如列表),则该对象的内容仍能被改变: ```python mutable_example = ([1, 2], 3) mutable_example[0][0] = 99 # 修改嵌套列表中的内容 print(mutable_example) # 输出 ((99, 2), 3) ``` ### 方法支持 虽然元组的功能相对简单,但仍提供了几个常用的方法: - `.count(value)` —— 统计指定值出现次数; - `.index(value[, start[, end]])` —— 查找首次匹配的位置并返回下标。 示例代码如下所示: ```python example_tuple = (7, 8, 9, 7) occurrences_of_7 = example_tuple.count(7) # 结果为 2 position_of_8 = example_tuple.index(8) # 结果为 1 ``` ### 应用场景 由于元组具有高效性和安全性,在实际开发中有广泛的应用价值,比如作为字典键值或者函数参数传递时保持一致性等等[^2]^。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值