python数据类型之元组

本文深入探讨Python中元组的特性和应用,包括元组的创建、不可变性、索引和切片操作、连接和重复,以及元组的常用方法如index和count。通过实例展示元组在变量交换、打印变量值、赋值和排序中的作用,最后提供了一个计分功能的小例子。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

元组:带了紧箍咒的列表

  • 元组是不可变数据类型,没有增删改查,可以存储任意数据类型

元组的创建

  • 定义一个空的元组
t=()
print(t,type(t))
输出结果:
() <class 'tuple'>
  • 定义一个非空元组
t = (1,1.2,True,'python')
print(t,type(t))
输出结果:
(1, 1.2, True, 'python') <class 'tuple'>
() <class 'tuple'>
  • 元组如果只有一个元素,后面一定要加逗号,否则数据类型不确定
t4 = (1)
print(t4,type(t4))
输出结果:
1 <class 'int'>


t4 = (1,)
print(t4,type(t4))
输出结果:
(1,) <class 'tuple'>
  • 元组本是不可变数据类型,但是 如果元组里面包含可变数据类型,可以间接修改元组内容
t1 = ([1,2,3],4)
t1[0].append(4)
print(t1)
输出结果:
([1, 2, 3, 4], 4)


t2 = ()
print(t2)
t3 = tuple([])
print(t3)
l4 = list(())
print(l4)
输出结果:
()
()
[]

元组的特性

tuple = (1,1.0,True,‘westos’)

  • 索引
print(tuple[0])
print(tuple[-1])
输出结果:
1
westos
  • 切片
print(tuple[1:])
print(tuple[:-1])
print(tuple[::-1])
输出结果:
(1.0, True, 'westos')
(1, 1.0, True)
('westos', True, 1.0, 1)
  • 连接
    除了数值类型之外,不同的数据类型之间不可以连接
print(tuple + (1,2,3))
输出结果:
(1, 1.0, True, 'westos', 1, 2, 3)

print(tuple + [4,5,6])
输出结果:
Traceback (most recent call last):
  File "/home/kiosk/PycharmProjects/python/DataType/元组.py", line 30, in <module>
    print(tuple + [4,5,6])
TypeError: can only concatenate tuple (not "list") to tuple
报错了


  • 重复
print(tuple * 5)
输出结果:
(1, 1.0, True, 'westos', 1, 1.0, True, 'westos', 1, 1.0, True, 'westos', 1, 1.0, True, 'westos', 1, 1.0, True, 'westos')

  • for循环
for i in tuple:
    print(i)
输出结果:
1
1.0
True
westos
  • 成员操作符
print(1 in tuple)
print(i not in tuple)
输出结果:
True
False

元组的常用方法

t = (1,2,'a','c','a')
  • 查看元素的索引值
print(t.index('c')) # 3
  • 查看元素在元组中出现的次数
print(t.count('a')) # 2

元组的应用场景

1.变量交换数值
# 1.变量交换数值
a = 1
b = 2
b,a = a,b
"""
b,a = a,b就相当于干了下面3件事
1.先把(a,b)封装成了一个元组 (1,2)
2. b,a = a,b ===> b,a = (1,2)
3. b = (1,2)[0] a =(1,2)[1]
"""
print(a,b) #2 1
2.打印变量值
name = 'westos'
age = 11
t = (name,age)
print('name:%s,age:%d' %(name,age))
print('name:%s,age:%d' %t)
输出结果:
name:westos,age:11
name:westos,age:11
3.元组的赋值

有多少个元素,就用多少个变量接收

t = ('Westos',10,100)
name,age,score = t
print(name,age,score)
输出:
Westos 10 100

4. 元组的排序
scores = (100,89,45,78,65)
scores_sort = sorted(scores)
print(scores_sort)
输出:
[45, 65, 78, 89, 100]

元组的小例子

  • 实现计分功能
    去掉一个最高分,去掉一个最低分,剩下的相加除以个数
scores = (100,89,98,60,90,67)
scores = sorted(scores)
# python2中*middle不能使用的
min_score,*middle,max_score = scores # middle
print(min_score,'~~~~',*middle, '~~~~~~',max_score)
print(type(min_score),type(middle),type(max_score))
print('最终成绩为:%s' %(sum(middle)/4))
输出:
60 ~~~~ 67 89 90 98 ~~~~~~ 100
<class 'int'> <class 'list'> <class 'int'>
最终成绩为:86.0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值