python学习07_元组tuple、集合set

本文介绍了Python中的元组(tuple)和集合(set)概念,包括元组的不可变特性、应用场景以及集合的表示方法、基本操作(增删改查)、运算方法(交集、并集、差集)以及集合在去重中的应用。
摘要由CSDN通过智能技术生成

一、元组

1. tuple 元组

特点:不可变的列表

t = ("张无忌", "赵敏", "呵呵哒")

元组类型对象不支持重新定义元素
元组的应用场景:使用者固定了某些数据,不允许外界修改。
在这里插入图片描述

如果元组中只有一个元素,如下图中所示,可以看到t是一个字符串类型而非元组,在这里()默认为优先级。
在这里插入图片描述
然而,在末尾加上一个逗号,可以看到t变为了元组。

t = ("哈哈",)

在这里插入图片描述

2. 关于元组的不可变

如果列表中的某个元素是一个列表,列表本身的内存地址不可变,但内存地址所指向的东西(列表里面的内容)可以改变。

二、set集合

1. 表示方法:

s = {1, 23}

注意:

  1. 如果集合默认为{},那么可以看到它的数据类型是字典。
s = {}
print(type(s))

<class 'dict'>
  1. set集合是无序的
s = {1, "呵呵哒", 2, 3}
print(s)

{'呵呵哒', 1, 2, 3}
  1. 不可哈希:python中的set集合进行数据存储的时候,需要对数据进行哈希计算。根基计算出的哈希值进行存储数据。set集合要求存储的数据必须是可以进行哈希计算的。
s = {1, "呵呵哒", 2, 3, []}

返回结果:
在这里插入图片描述
可哈希:不可变的数据类型(int,str,tuple,bool)
不可哈希:可变的数据类型(list,dict,set)

  1. set集合不可嵌套

2. 创建空集合:

s = set()
# 同理
s = str()  # 创建空字符串
s = tuple()  # 创建空元组
s = list()  # 创建空列表

3. 集合的基本操作:

3.1 增:

s.add("赵本山")

3.2 删:

set集合没有索引和切片
由于集合无序,测试的时候没办法验证是最后一个。实际结果变成随便从集合中删掉一个。

s.pop()

另外删除方式:

s.remove("范伟")

3.3 修改:

想要修改,先删除,再新增

3.4 查询:

只能用for循环进行查询:

for item in s:
    print(item)

4. 集合的运算方法:

4.1 交集:

方式1:&

s1 = {"刘能", "赵四", "皮长山"}
s2 = {"刘科长", "冯乡长", "皮长山"}
print(s1 & s2)

方式2:s1.intersection(s2)

s1 = {"刘能", "赵四", "皮长山"}
s2 = {"刘科长", "冯乡长", "皮长山"}
print(s1.intersection(s2))

4.2 并集:

方式1:|

s1 = {"刘能", "赵四", "皮长山"}
s2 = {"刘科长", "冯乡长", "皮长山"}
print(s1 | s2)

方式2:s1.union(s2)

s1 = {"刘能", "赵四", "皮长山"}
s2 = {"刘科长", "冯乡长", "皮长山"}
print(s1.union(s2))

4.3 差集:

方式1:-
表示存在于s1,但不存在于s2的元素

s1 = {"刘能", "赵四", "皮长山"}
s2 = {"刘科长", "冯乡长", "皮长山"}
print(s1 - s2)

方式2:s1.difference(s2)

s1 = {"刘能", "赵四", "皮长山"}
s2 = {"刘科长", "冯乡长", "皮长山"}
print(s1.difference(s2))

5. 集合的作用:

5.1 去重:

集合中不允许出现重复的元素
如果想对列表中元素进行去重,可以进行如下操作:

print(set(lst))

举例:
在这里插入图片描述
如果想给列表还原回去:

print(list(set(lst)))  # 去除重复之后的数据是无序的
  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

枯木逢春24

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

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

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

打赏作者

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

抵扣说明:

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

余额充值