【Python基础入门教学】——容器类型_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

不能修改元组中的元素指的是如果当前元组中的元素为不可变对象则不能修改,如果是可变对象在不修改元素类型的情况下可以修改可变对象中的值。

可变对象:list, dict, set

不可变对象:tuple, string, int, float, bool

元组的作用

到现在我们知道元组也是可以存储多个数据的,列表也可以存储多个数据,那为什么有了列表还要有元组呢?而且元组还不能修改。

正是因为元组的特点是不能被修改,所以才有了存在它的理由,试想一个程序中有很多场景是有很多数据不能被修改的,这种情况下用列表容易被篡改,反而用元组恰到好处

多提一句,后面学习函数时,一个函数可以通过 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,可以快速的完成对 listtuple中的元素去重复的功能

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}

集合中的内置方法

如果大家不想错过后面的Python知识,或者认为本教程质量高,可以点一个赞或点一个关注,如果有建议或者讲的不好的地方请指出。

创作不易,你们的点赞收藏关注就是对我的最大的鼓励!谢谢大家的支持!


注意:内容为“小蒋的程序员日记”原创,

未经许可,严禁转载!

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Beast Cheng

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值