python中集合及运算

一、集合set()的特点:

集合的特点:有的可变,有的不可变;元素无次序,不可重复。

集合中的元素不能重复,可作为一种简单高效的元素去重方式。

集合没有索引,它的元素无次序,不是序列。

利用set()和{}建立集合时,要求集合中的元素必须是可哈希(hsshable)的,即在利用set()和{}创建集合的时候,集合中的元素必须是不可变的。

利用set()创建的集合是可变集合,它的类型是不可哈希(unhashable)的。对于这句话的理解是,set()创建的集合,整体上是可变的,可以增、删;但集合中的元素(个体)是不可变(hashable)的,不能被修改,且集合中的元素不能是列表、字典等可变类型的对象。

二、集合运算

ps:程序源代码的许多知识点,我都是写在注释中的,,所以看代码中的注释很重要!


list_1 = [1,3,4,2,6,7,3,5,9]
list_1 = set(list_1)

list_2 = [2,43,323,1,6,86]
list_2 = set(list_2)
list_3 = set([3,4,7])
print(list_1,type(list_1))    # 集合是set,看起来是有序的,但其实是无序的
print(list_1.intersection(list_2))   # 交集  等于list_1^list_2
print(list_1.union(list_2))          # 并集  等于list_1|list_2
print(list_1.difference(list_2))     # 差集(1有2无)  等于list_1-list_2
print(list_1.issubset(list_3))       # 子集
print(list_1.issuperset(list_3))     # 父集
print(list_1.symmetric_difference(list_2))  # 对称差集,把并集中的交集去掉

在这里插入图片描述

本人目前在学习python、前端、数据库和linux相关的内容,故打算写一些学习笔记,包括安装软件遇到的一些问题、编程语言的学习。 学习如逆水行舟,你在原地踏步的同时,别人一直在前进!
原文地址:https://www.cnblogs.com/souhaite/p/10585613.html