Python基础七 元组、字典、集合

本文详细介绍了Python中的元组、字典和集合。元组是不可变的数据集合,支持拼接、解包等操作;字典是无序的键值对集合,提供了增删改查等方法;集合是无序且不重复的元素集,支持多种集合运算。文章还包含了相关操作的实例演示和练习题。
摘要由CSDN通过智能技术生成


1.元组

1.1 元组的简介

  • 元组的概念
    元组(Tuple)是一组有序的、不可变的数据集合(不可改的List)
    在定义的时候,主要元组用的是小括号(),是可以通过下标进行访问的,也可以通过切片进行访问
# 元组的创建和访问
tuple01 = (1,2,3,4,5,6)
print(tuple01[0])  # 通过下标访问第一个元素:1
print(tuple01[1:5])  # 通过切片访问第二个到第五个元素 (2, 3, 4, 5)

1.2 元组的创建

(1) 常规元组的创建
一开始就得全部声明,因为后面是不可以更改的

#常规元组创建的方法
tuple01 = (11,22,33,44,55)  # 元组的创建
tuple02 = ()  # 空元组也是可以创建的

(2) 单个元组的创建
如果创建单元素的元组不能直接写成tupel03 = (11),因为这种创建方式默认创建的整型,那么怎么创建单元素的元组呢?
我们需要在单个元素后面添加一个逗号,这样就能够创建单个元素的元组了:

# 创建单元素元组
my_tuple = (11,)  # 单元素元组一定要加逗号

(3) 元组的拼接
元组虽然不可以修改,但是支持多个元组的拼接;

# 元组的拼接
tuple01 = (11,22,33,44,55)  
tuple02 = (1,3,5,7)  
tuple03 = tuple01 + tuple02
print(tuple03) 
#(11, 22, 33, 44, 55, 1, 3, 5, 7)

1.3 元组常用方法

(1) 元组中可以用的常用方法

  • 整体赋值操作
# 元组使用整体赋值运算符
tuple01 = (11,22,33,44)
tuple02 = tuple01
  • 拼接操作
# 元组的拼接
tuple01 = (11,22,33,44,55)  
tuple02 = (1,3,5,7)  
tuple03 = tuple01 + tuple02
print(tuple03) 
#(11, 22, 33, 44, 55, 1, 3, 5, 7)
  • 打印指定遍数
tuple01 = (11,22)
print(tuple01 * 3)
#(11, 22, 11, 22, 11, 22)
  • 求元组的长度
# 元组使用求长度运算符
tuple01 = (11,22,33)
print(len(tuple01)) # 3
  • 是否包含
# 元组使用是否包含运算符
tuple01 = (11,22,33)
print("是否包含11:",11 in tuple01)
#是否包含11: True
  • 求最值、求和
# 元组的计算
tuple01 = (11,22,33,44,9,6,5)
print(max(tuple01))
print(min(tuple01))
print(sum(tuple01))
  • 查找(元组不可以用find()函数查找)
# 元组的查找
tuple01 = (-11,11,13,44,999,66,2)
print(tuple01.index(11))# 返回值是索引的位置:1
#如果元组里有相同的元素,返回值是最前面元素的索引值。
tuple01 = (-11,11,13,11,999,66,2)
print(tuple01.index(11))# 返回值:1
  • 统计元素的次数
#统计出现的次数
tuple01 = (-11,11,13,44,999,66,11)
print(tuple01.count(11)) # 2
#元组tuple01中11出现在的次数为:2

1.4 元组不可以使用的方法

元组不可以直接使用列表中的添加、插入、删除方法,但是注意:虽然元组里直接的元素没法改,但是元组里嵌套了list的话,还是可以非常方便的增加、删除、修改list元素的。

# 修改元组中嵌套的列表元素
tuple01 = (11,22,33,44,[44,55,66])
tuple01[4].append(77)
tuple01[4].remove(55)
tuple01[4].extend([88,99])
print(tuple01)

1.5 特殊方法

  • 元组的删除
    元组里的单个元素是无法删除的,但是可以用del方法,把整个元组删除
# 元组的删除
tuple01 = (11,22,33)
del tuple01
  • 元组的排序
    用于排序的sort()方法,和反转排序的reverse()方法,改变了元素的存储位置所以不可用于元组的排序,但是临时排序sorted()方法就可以,因为它并没有改变元素的原始存储位置,只是用于排序输出
tuple01 = (-11,1,13,44,999,66,2)
print(sorted(tuple01))
#[-11, 1, 2, 13, 44, 66, 999]升序排列

1.6 元组解包(拆包)

  • 元组拆包指将元组当中的每一个元素都赋值给一个变量,元组元素的数量与变量的数量相同。
my_tuple = (1, 2, 3, 4, 5, 6)
#元组的拆包
a,b,c,d,e,f = my_tuple
print(a)  #可以单独取值
print(b)   #可以单独取值
print(a,b,c,d,e,f)  # 也可以这样一起取值
#
1
2
1 2 3 4 5 6
  • 在对一个元组拆包的时候,变量的数量和元组中元素的数量要把持一致
# 错误示例
my_tuple = (1, 2, 3, 4, 5,6) #元组里6个元素
a,b,c,d,e = my_tuple   #变量的数量(5个) 和 元组中元素的数量不一样。
print(a)
print(a,b,c,d,e)
#不管是打印一个值,还是打印多个都会报错
#报错:ValueError: too many values to unpack (expected 6)(需要打开的值太多,预期6个),这个报错很明显,我们可以看到拆包的变量只有5个,而元组内的元素数量有6个,5个变量接收6个值,变量不够呀,所以会报错。

# 正确示例
my_tuple = (1,2,3,4,5,6)
a,b,c,d,e,f = my_tuple   #变量的数量 和 元组中元素的数量一样。
print(a)
print(a,b,c,d,e)

  • 如果变量和元素不一致,就可以在变量前面加上一个* ,这样会获取元组中剩余的元素,以列表的形式返回;如果打印的时候给变量前加一个*,返回值就不会列表形式;
tuple1 = (1,2,3,4,5)
a,*b = tuple1
print(a,b)   #返回值是列表形式
print(a,*b)  # 返回值非列表形式
# 打印结果:
1 [2, 3, 4, 5]
1 2 3 4 5
##
list1 = [1, 2, 3, 4,5]
a, *b, c = list1
print(a, b, c) # 1 [2, 3, 4] 5

1.7练习题

案例1:
输入一个数字,转换成中文数字,比如:1234567890转换成壹贰叁肆伍陆柒捌玖零

# 定义汉字数字元组
tuple_chinese = ('零','壹','贰','叁','肆','伍','陆&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值