数据容器——元组的定义与操作

元组同列表一样,可以封装多个不同类型的元素在内,最大的不同点在于:元组一旦完成定义,就不可修改(若是元组中嵌套 list,则 list 中元素可修改)。

定义元组

元组使用()定义,且使用,隔开各个数据,数据可以是不同数据类型,同样支持嵌套,且支持下标索引,写法相同。

注:元组只有一个数据,这个数据后面要添加逗号,否则不是元组类型。

# 定义元组
'''
# 定义元组使用小括号,且使用逗号隔开各个数据,数据可以是不同的数据类型。
# 定义元组字面量
(元素,元素,元素,元素,,,,,)
# 定义元组变量
变量名称=(元素,元素,元素,元素,元素,,,,,)
# 定义空元组
变量名称=()        #方式1
变量名称=tuple()     #方式2,tuple关键字+括号,这种写法本质上是得到元组的类对象。
'''
# 定义元组
t1=(1,"hello",True)
t2=()
t3=tuple()
print(f"t1的类型是:{type(t1)},内容是:{t1}")
print(f"t2的类型是:{type(t2)},内容是:{t2}")
print(f"t3的类型是:{type(t3)},内容是:{t3}")

# 定义单个元素的元组
t4=("hello")
t5=("hello",)
print(f"t4的类型为:{type(t4)}") # t4的类型为:<class 'str'>
print(f"t5的类型为:{type(t5)}") # t5的类型为:<class 'tuple'>

# 元组的嵌套
t6=(1,2,3),(4,5,6)
print(f"t6的类型为:{type(t5)},内容是{t6}") # t6的类型为:<class 'tuple'>,内容是((1, 2, 3), (4, 5, 6))

# 下标索引去取出元组中的元素,规则和list一样。
num=t6[0][1] # 
print(f"从嵌套元组中取出的数据是:{num}") # 从嵌套元组中取出的数据是:2

元组的相关操作

'''
index():查找某个数据,如果数据存在返回对应的下标,否则报错;
count(): 统计某个数据在当前元组出现的次数;
len():统计元组内的元组个数
'''
# 根据下标(索引)取出数据
t1=(1,2,"helleo")
print(t1[2]) # 结果:helleo

# 根据index(),查找特定元素的第一个匹配位数(位置)
t1=(1,2,"hi",3,4,"hi")
a=t1.index("hi")
print(a)  # 结果:2

# 统计某个数据在元组内出现的次数,元组.count(元素)
t1=(1,2,"hi",3,4,"hi","hi")
b=t1.count("hi")
print(b)  # 结果:3

# 统计元组内的元素个数,用函数len(元组)
t7=(1,2,"hi",3,4,5,"hi")
c=len(t7)
print(c)  # 结果:7

# 元组的遍历:while
index=0
while index<len(t7):  # index<7
    print(f"元组的元素有:{t7[index]}")
    index+=1
'''
运行结果;
元组的元素有:1
元组的元素有:2
元组的元素有:hi
元组的元素有:3
元组的元素有:4
元组的元素有:5
元组的元素有:hi
'''

# 元组的遍历:for
index=0
for i  in t7:
    print(f"2元组的元素有:{i}")
'''
运行结果:
2元组的元素有:1
2元组的元素有:2
2元组的元素有:hi
2元组的元素有:3
2元组的元素有:4
2元组的元素有:5
2元组的元素有:hi

'''

注意事项:

# 元组的相关操作:注意事项
# 不可以修改元组的内容,否则会直接报错
# 尝试修改元组内容
t1=(1,2,3)
t1[0]=5
'''
Traceback (most recent call last):
  File "/Users/wangxin/PycharmProjects/pythonProject1/数据容器-元组(tuple).py", line 102, in <module>
    t1[0]=5
TypeError: 'tuple' object does not support item assignment
'''
# 可以修改元组内的list的内容(修改元素、增加、删除、反转等)
t9=(1,2,["he","she"])
print(f"t9的内容是:{t9}")
t9[2][0]="他"
t9[2][1]="她"
print(f"t9的内容是:{t9}")
'''
运行结果:
t9的内容是:(1, 2, ['he', 'she'])
t9的内容是:(1, 2, ['他', '她'])
'''

练习案例:元组的基本操作

练习案例:元组的基本操作
定义一个元组,内容是:(“小兰”,11,[“攀岩”,“围棋“]),记录的是一个学生的信息(姓名、年龄、爱好)
请通过元组的功能(方法),对其进行:
1、查询其年龄所在的下标位置
2、查询学生的姓名
3、删除学生爱好中的攀岩
4、增加爱好:音乐添加到爱好list内
# 定义一个元组
A1=("小兰",11,["攀岩","围棋"])
# index 定位功能
index=A1.index(11)
print(f"元组{A1}的年龄所在位置:{index}")  # 元组('小兰', 11, ['攀岩', '围棋'])的年龄所在位置:1

# 定义学生的年龄变量
name=A1[0]
print(f"学生的姓名是;{name}")   # 学生的姓名是;小兰

# 删除方法1:remove
A1[2].remove("攀岩")
print(f"删除后的元组为:{A1}")   # 删除后的元组为:('小兰', 11, ['围棋'])
# 删除方法2:del
A1=("小兰",11,["攀岩","围棋"])
del A1[2][0]
print(f"del元组删除元素后的结果是:{A1}") # del元组删除元素后的结果是:('小兰', 11, ['围棋'])

# 增加爱好:音乐添加到爱好list内,"围棋"的尾部
A1[2].append("音乐")
print(f'增加后的元组为:{A1}') # 增加后的元组为:('小兰', 11, ['围棋', '音乐'])

  • 8
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值