Python入门--集合

1、打开Pycharm,创建Python文件,复制代码,保存运行!
在这里插入图片描述

"""
# 为什么要使用集合
# 通过特性来分析:
# 列表可修改、支持重复元素且有序
# 元组、字符串不可修改、支持重复元素且有序
# 局限性在于:它们都支持重复元素,如果需要对内容进行去重处理,列表、元组、字符串不方便
# 集合:不支持元素重复(自带去重功能),并且内容无序,所以不支持下标索引,允许修改,不属于序列,不支持切片操作
# 列表[]、元组()、字符串""、集合{}
# 基本语法:
# # 定义集合字面量
# {元素,元素,....}
# # 定义集合变量
# 变量名称={元素,元素,......,元素}
# # 定义空集合
# 变量名称 =set()

# 定义集合
my_set = {"hello","xpp","world","hello","xpp","world","hello","xpp","world"}

# 结果不允许重复,而且是乱序的
my_set_empty = set()
print(f"my_set的内容是:{my_set},类型是{type(my_set)}")
print(f"my_set的内容是:{my_set_empty},类型是{type(my_set_empty)}")

# 添加新元素 集合.add()
my_set.add("python")
my_set.add("你好")
my_set.add("hello")# 添加重复的或被去重,有不变,没有加入
print(f"my_set添加元素后的结果是:{my_set}")

# 移除元素 集合.remove(元素)
my_set.remove("你好")
print(f"my_set移除你好后的结果:{my_set}")

# 随机取出一个元素 集合.pop(),没有参数随机取出,列表可以根据下标取出
element = my_set.pop()
print(f"my_set随机取出一个元素是{element},取出后my_set变成{my_set}")

# 清空集合 集合.clear()
my_set.clear()
print(f"集合被清空了,结果是{my_set}")

# 取出两个集合的差集 集合1.difference(集合2) 集合1中有的但是集合2中没有的
set1 = {1,2,3,55,66}
set2 = {55,66,3,4,5,6,7}
set3 = set1.difference(set2)# set1中有的但set2中没有的
set4 = set2.difference(set1)# set2中有的但是set2中没有的
print(f"set1和set2的差集是:{set3}")
print(f"set2和set1的差集是:{set4}")
print(f"ste1集合不变{set1}")
print(f"ste2集合不变{set2}")

# 消除两个集合的差集 集合1.difference_update(集合2) 在集合内删除和集合2中相同的元素,集合1会更新
set2.difference_update(set1)
print(f"set2消除和set1的差集后的结果是{set2}")

# 2个集合合并成1个集合 集合3 = 集合1.union(集合2)
set5 = {1,2,3,55,66}
set6 = {55,66,3,4,5,6,7}
set7 = set5.union(set6)
print(f"set5和set6合并后的结果是{set7}")# 去重且顺序不变

# 统计集合元素数量,长度
len = len(set7)
set7 = {1, 2, 3, 66, 4, 5, 6, 7, 55,1, 2, 3, 66, 4, 5, 6, 7, 55}# 集合算长度时也是去重的
print(f"set7为{set7},长度为{len}")

# 集合的遍历 循环 集合不支持下标索引while不能用
for e in set7:
    print(f"集合的元素有{e}")


# 练习
# 有如下列表对象:
# my_list =['xpp’,'学习python’,'学习’,'it','itxpp','itxpp''best']
# 请:
# 定义一个空集合
# 通过for循环遍历列表
# 在for循环中将列表的元素添加至集合
# 最终得到元素去重后的集合对象,并打印输出

set = set()
my_list =['xpp','学习python','学习','it','itxpp','itxpp','best']
for e in my_list:
    set.add(e)
    print(f"成加入到集合中")


print(f"插入后的集合为{set}")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值