5.容器类型 -- 元组
5. 容器类型 - 2
元组
什么是元组
元组是存储多个数据的一种方式
元组与列表类似,不同之处在于元组的元素不能修改
元组使用小括号()
,列表使用方括号[]
>>> aTuple = ('et',77,99.9)
>>> aTuple
('et',77,99.9)
元组的使用
访问元组
# 定义一个元组
nums = (100, 200, 300)
# 获取元组中的元素
print(nums[0])
# 遍历
for temp in nums:
print(temp)
不能修改元组
示例代码:
# 定义一个元组
nums = (100, 200, 300)
nums[0] = 400 # 这里会报错,元组中的数据不能被修改
运行结果:
Traceback (most recent call last):
File "/Users/poppies/Desktop/元组.py", line 4, in <module>
nums[0] = 400
TypeError: 'tuple' object does not support item assignment
元组的作用
到现在我们知道元组也是可以存储多个数据的,列表也可以存储多个数据,那为什么有了列表还要有元组呢?而且元组还不能修改
why?
正是因为元组的特点是不能被修改,所以才有了存在它的理由,试想一个程序中有很多场景是有很多数据不能被修改的,这种情况下用列表容易被篡改,反而用元组恰到好处
多提一句,后面学习函数时,一个函数可以通过return
返回多个数据,那时就是用的元组。
集合
什么是集合
集合是一种能够存储多个数据的方式
它最大的特点是:数据不能重复
也就是说
- 列表可以存储多个数据,支持增删改查
- 元组可以存储多个数据,不能修改
- 集合依然可以存储多个数据,数据不能重复
可见Python发明的列表、元组、集合各有特点各有千秋,希望大家多练习以便更快掌握它们的精髓
集合的使用
定义
{元素1, 元素2, 元素3...}
示例
# 定义一个集合
nums = {100, 200, 300}
# 测试数据类型真的是集合吗?
print(type(nums))
# 遍历
for temp in nums:
print(temp)
运行结果:
<class 'set'>
200
100
300
集合的数据去重
# 定义一个集合
nums = {100, 200, 200, 300, 300, 300}
# 测试数据类型真的是集合吗?
print(type(nums))
# 遍历
for temp in nums:
print(temp)
运行结果:
<class 'set'>
200
100
300
集合无序
代码示例:
# 定义一个集合
set_data = {'a', 'b', 'c', 'd', 'e', 'f'}
print(set_data)
运行结果:
In [1]: set_data = {'a', 'b', 'c', 'd', 'e', 'f'}
In [2]: print(set_data)
{'c', 'd', 'f', 'b', 'a', 'e'}
注意点
- 列表、元组在定义时的顺序是怎样的,那么顺序就是怎样的
- 而集合的实际存储顺序与定义的顺序没有什么关系,而是与一个特殊的算法有关(把数据进行了哈希,这个我们暂不做深入讨论,只需要知道集合的顺序不确定即可)
容器类型的类型互转
引入
所谓互转,就是把一种数据类型在数值不变的情况下 转换为另外一种表示方式
当前容器类型的互转不包含字典!!!
基本使用
nums1 = [11, 22, 33] # 定义列表
nums2 = (44, 55, 66) # 定义元组
nums3 = {77, 88, 99} # 定义集合
# 列表转换为元组、集合
print("-----------")
nums1_tuple = tuple(nums1)
print(type(nums1_tuple))
nums1_set = set(nums1)
print(type(nums1_set))
# 元组转换为列表、集合
print("-----------")
nums2_list = list(nums2)
print(type(nums2_list))
nums2_set = set(nums2)
print(type(nums2_set))
# 集合转换为列表、元组
print("-----------")
nums3_list = list(nums3)
print(type(nums3_list))
nums3_tuple = tuple(nums3)
print(type(nums3_tuple))
快速去重
使用set
,可以快速的完成对list
、tuple
中的元素去重复的功能
nums1 = [11, 22, 44, 33, 22, 11, 55, 666, 44, 33, 22]
nums2 = (11, 22, 44, 33, 22, 11, 55, 666, 44, 33, 22)
print(set(nums1)) # 将nums1转换为集合的时候,就自动去重了
print(set(nums2)) # 将nums2转换为集合的时候,就自动去重了
运行效果:
{33, 11, 44, 22, 55, 666}
{33, 11, 44, 22, 55, 666}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构