Python集合的基础操作

目录
  • 1、集合
  • 2、创建集合
  • 3、集合的运算
    • 3.1 成员运算
    • 3.2 交并差运算
    • 3.3 比较运算
  • 4、集合的方法
  • 5、不可变集合

1、集合

Python中的集合和数学上的集合基本是没有区别的,是无序的,即不可以使用索引访问的,集合中是不能出现重复元素的。

2、创建集合

Python中创建集合使用花括号{}字面量的方式,或者使用set()来创建一个集合。使用{}中必须至少含一个元素,创建空集合不能使用{},这样创建的是空字典,应该使用set()的方式来创建一个集合。

# 使用字面量方法创建集合
set1 = {"Hello", "World"}
print(type(set1), set1)  # <class 'set'> {'World', 'Hello'}
# print(set1[1]) # TypeError: 'set' object does not support indexing

# 使用set()的方式创建
set2 = set("hello")  # {'l', 'o', 'h', 'e'}集合会去掉重复的元素,即"l"
print(set2)

# 创建空集合
set3 = {}
set4 = set()
print(type(set3), type(set4))  # <class 'dict'>字典 <class 'set'>

list1 = [1, 2, 3, 4, 3, 5, 1, 3]
# 将列表转换为集合
set6 = set(list1)
print(type(set6), set6)  # <class 'set'> {1, 2, 3, 4, 5}

# 使用生成列生成列表
set5 = {num for num in range(20) if num % 3 == 0}
print(set5)  # {0, 3, 6, 9, 12, 15, 18}

# 遍历循环
for ch in set5:
    print(ch)

注意:集合中的元素为不可变的类型,如整数、浮点、字符串、元组等,也就是说可变类型不能作为元组的元素,集合本身也是可变类型,所以集合不能够作为集合中的元素。

3、集合的运算

集合数据类型拥有超多的运算符,包括成员运算、交集运算、并集运算、差集运算、比较运算(相等性、子集、超集)等。

3.1 成员运算

可以通过成员运算innot in 检查元素是否在集合中,

示例代码如下:

set1 = {"你好", "Python", "这个是", "集合", "set"}
print("Python" in set1)  # True
print("您好" in set1)  # False
print("set" not in set1)  # False
print("list" not in set1)  # True

3.2 交并差运算

Python中的集合跟数学上的集合一样,可以进行交集、并集、差集等运算,而且可以通过运算符和方法调用两种方式来进行操作。

示例代码如下:

set1 = {1, 2, 3, 4, 5, 6, 7}
set2 = {2, 4, 6, 8, 10}

# 交集(咱俩都有的)
# 方法一: 使用 & 运算符
print(set1 & set2)                # {2, 4, 6}
# 方法二: 使用intersection方法
print(set1.intersection(set2))    # {2, 4, 6}

# 并集(咱俩加在一起)
# 方法一: 使用 | 运算符
print(set1 | set2)         # {1, 2, 3, 4, 5, 6, 7, 8, 10}
# 方法二: 使用union方法
print(set1.union(set2))    # {1, 2, 3, 4, 5, 6, 7, 8, 10}

# 差集(我不要你有的)
# 方法一: 使用 - 运算符
print(set1 - set2)              # {1, 3, 5, 7}
# 方法二: 使用difference方法
print(set1.difference(set2))    # {1, 3, 5, 7}

# 对称差(咱俩不要你的和我的,只要专一的)
# 方法一: 使用 ^ 运算符
print(set1 ^ set2)                        # {1, 3, 5, 7, 8, 10}
# 方法二: 使用symmetric_difference方法
print(set1.symmetric_difference(set2))    # {1, 3, 5, 7, 8, 10}
# 方法三: 对称差相当于两个集合的并集减去交集
print((set1 | set2) - (set1 & set2))      # {1, 3, 5, 7, 8, 10}

集合的交集、并集、差集运算还可以跟赋值运算一起构成复合运算,

示例代码如下:

set1 = {1, 3, 5, 7}
set2 = {2, 4, 6}
# 将set1和set2求并集再赋值给set1
# 也可以通过set1.update(set2)来实现
set1 |= set2  # set1 = set1 | set2
print(set1)    # {1, 2, 3, 4, 5, 6, 7}
set3 = {3, 6, 9}
# 将set1和set3求交集再赋值给set1
# 也可以通过set1.intersection_update(set3)来实现
set1 &= set3  # set1 = set1 & set3
print(set1)    # {3, 6}

3.3 比较运算

两个集合可以用==和!=进行相等性判断,如果两个集合中的元素完全相同,那么==比较的结果就是True,否则就是False;!=则反之。

如果集合A的所有的元素也是集合B的元素,就称为A是B的子集,B是A的超集;如果集合A的子级且不等于集合B,那就称为A是B的真子级。判断子集和超集的运算符为<和>。示例代码↓

set1 = {1, 3, 5}
set2 = {1, 2, 3, 4, 5}
set3 = set2
# <运算符表示真子集,<=运算符表示子集
print(set1 < set2, set1 <= set2)    # True True
print(set2 < set3, set2 <= set3)    # False True
# 通过issubset方法也能进行子集判断
print(set1.issubset(set2))      # True
print(set2.issubset(set2))      # True
# issubset方法和<=运算符是等价的

# 反过来可以用issuperset或>运算符进行超集判断
print(set2.issuperset(set1))    # True
print(set2 > set1)              # True

4、集合的方法

集合属于可变列类型,可以通过集合类型的方法对集合的元素进行修改,

示例代码:

# 创建一个空集合
set1 = set()

# 通过add()方法为集合添加元素
set1.add(1)
set1.add(2)
print(set1)  # {1, 2}

# 通过update()给集合添加元素
set1.update({1, 2, 3, 4, 5})
print(set1)  # {1, 2, 3, 4, 5} 元素在集合中已存在,该元素只会出现一次

# 通过discard()方法删除指定元素
set1.discard(4)
set1.discard(2)
set1.discard(22)  # 集合里面没有不会出错
print(set1)  # {1, 3, 5}

# 通过remove()方法删除指定元素
# set1.remove(6) # KeyError: 6,使用remove()方法删除指定元素时先做成员运算就不会出错了
if 6 in set1:
    set1.remove(6)

# pop方法可以从集合中随机删除一个元素并返回该元素
print(set1.pop())  # 1 本次剔除的是1

# clear方法可以清空整个集合
set1.clear()
print(type(set1))  # <class 'set'>
print(set1)    # set()

# 通过isdisjoint()方法判断两个集合有没有重复的元素,有返回False没有则返回Ture
set2 = {"Hello", "World"}
set3 = {"Hello", "一碗周"}
set4 = {"Hi", "Python"}
print(set2.isdisjoint(set3))  # False
print(set2.isdisjoint(set4))  # True

5、不可变集合

Python中还有一种不可变类型的集合,名字叫frozenset,于集合的区别就跟列表和元组的区别一样。除了不能添加和删除元素,frozenset在其他方面跟set基本是一样的。

示例代码:

set1 = frozenset({1, 3, 5, 7})
set2 = frozenset(range(1, 6))
print(set1 & set2)    # frozenset({1, 3, 5})
print(set1 | set2)    # frozenset({1, 2, 3, 4, 5, 7})
print(set1 - set2)    # frozenset({7})
print(set1 < set2)    # False

到此这篇关于Python集合的基础操作的文章就介绍到这了,更多相关Python集合内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Python中关于集合的介绍与常规操作解析

    目录 1.集合的介绍 2.访问集合的元素 3.集合的添加 4.集合的修改 5.集合的删除 1.使用remove方法 2.使用pop方法 3.使用discard方法 6.集合的交集和并集 1.交集 2.并集 7.公共方法 8.python内置函数 1.len 2.max 3.min 4.del 1.集合的介绍 集合是无序的,集合中的元素是唯一的,集合一般用于元组或者列表中的元素去重. 定义一个空集合 格式如下: name=set() 注意以下写法为一个空字典,为空默认是字典,如果有数据在根据格式判

  • Python之集合详解

    目录 集合的基本操作 1.添加元素 add() update() 2.移除元素 remove() clear() 3.集合的交集 什么是交集? intersection() 3.集合的并集 什么是并集? union() 总结 集合(set)是一个无序的不重复元素序列. 可以使用大括号 { } 或者 set() 函数创建集合. student = {'小明', 'xiaohong', 'adm'} print('student的数据类型', type(student)) # student的数据类

  • Python四大金刚之集合详解

    目录 引言 一.集合的创建方式 二.集合的相关操作 三.集合生成式 总结 引言 一.集合的创建方式 #使用{} s = {1,2,3,4,3,2} #不允许重复元素 print(s) #使用内置函数set() s = set(range(6)) print(s) print(set(range(9))) print(set([10,12,13,4])) print(set('Python')) 二.集合的相关操作 set = {10,20,30,40,50} print(10 in set) #

  • 详细介绍Python中的set集合

    目录 Python中的set集合 一.集合是什么? 二.set集合怎么用? 1.创建set集合 2.删除set集合 3.访问set集合元素 4.删除集合中的元素 5.向集合中添加元素 三.set集合的交并补 1.交集 2.并集 3.差集 四.set中的其他方法 五.frozenset 集合 Python中的set集合 一.集合是什么? 集合是什么呢?相信读者朋友们哪怕是没有用过集合这个数据类型.也一定在数学课堂上听过集合这个名词.数学中的集合是一个基本概念,说白了一堆不重复的数字可以组成一个集合

  • python--字典(dict)和集合(set)详解

    目录 一.集合 1.集合定义 2.创建集合 3.去重 4.集合增删 5.关系运算 6.排序 7.frozenset 8.练习 9.特性 二.字典 1.字典定义 2.字典打印 3.字典元素删除 4.setdefault 5.defaultdict 总结 一.集合 1.集合定义 集合(set)是一个无序的不重复元素序列. 2.创建集合 使用大括号 { } 或者 set() 函数创建集合; 创建一个空集合必须用 set() 而不是 { } { } 是用来创建一个空字典. s = {1,2,3,4} p

  • Python中关于元组 集合 字符串 函数 异常处理的全面详解

    目录 元组 集合 字符串 1.字符串的驻留机制 2.常用操作 函数 1.函数的优点: 2.函数的创建:def 函数名([输入参数]) 3.函数的参数传递: 4.函数的返回值: 5.函数的参数定义: 6.变量的作用区域 7.递归函数:函数体内套用该函数本身 8.将函数存储在模块中 9.函数编写指南: Bug 1.Bug常见类型 2.常见异常类型 3.python异常处理机制 pycharm开发环境的调试 编程思想 (1)两种编程思想 (2)类和对象的创建 元组 元组是不可变序列 多任务环境下,同时

  • python基础之集合

    # set 不支持索引和切片,是一个无需的不重复得到容器 # 类似于字典,但是只有key 没有value # 创建集合 dic1={} set1={1,2,3} print(type(set1)) print(type(dic1)) dic1={} set1={1,2,3} print(type(set1)) print(type(dic1)) set1.add('python') #添加数据 print(set1) # 清空操作 set1.clear() print(set1) set1={1

  • Python编程itertools模块处理可迭代集合相关函数

    容器与可迭代对象 在正式开始前先补充一些基本概念在 Python 中存在容器 与 可迭代对象 容器:用来存储多个元素的数据结构,例如 列表,元组,字典,集合等内容: 可迭代对象:实现了 __iter__ 方法的对象就叫做可迭代对象. 从可迭代对象中还衍生出 迭代器 与 生成器: 迭代器:既实现了 __iter__,也实现了 __next__ 方法的对象叫做迭代器: 生成器:具有 yield 关键字的函数都是生成器. 这样就比较清楚了,可迭代对象的范围要大于容器.而且可迭代对象只能使用一次,使用完

  • Python学习之集合set

    目录 集合 (set) 一 .合集的一些常用命令 1.set 定义合集 2.add 添加元素 3.clear 清空 4.pop 随机删除一个元素 5.remove 指定删除 6.discard 指定删除 二.关系运算 1.交集 找到两个集合相同的元素 2.并集 合并两个集合 3.差集 保留前者与后者不同的元素 去除相同的元素 4.交叉补集 只保留两者不同的部分 5.isdisjoint 判断是否有交集返回布尔值 6.issubset判断后者是否包含前者 返回布尔值 7.issuperset判断前

  • Python字典和集合讲解

    目录 一.Python字典 1.什么是字典 2.字典的创建方式 2.1 通过其他字典创建 2.2 通过关键字参数创建 2.3 通过键值对的序列创建 2.4 通过dict和zip结合创建 3.字典的访问 3.1 根据键访问值 3.2 使用get()方法访问值 4.in 和 not in 在字典中的使用 5.修改和添加字典中的元素 6.删除字典中的元素 7.更新字典 8.获取字典视图的三个方法 9.遍历字典 10.字典的特点 11.复制字典 二.Python集合(set) 1.什么是集合 2.集合创

随机推荐