Python集合set和frozenset的内建方法详解(Python set和frozenset内建方法全面解析)

原创
ithorizon 6个月前 (10-20) 阅读数 15 #后端开发

Python集合set和frozenset的内建方法详解

一、概述

Python中的集合(set)和冻结集合(frozenset)是两个非常有用的内置数据结构。集合是一个无序的、不重复的元素集合,而冻结集合是不可变的集合类型。本文将详细介绍Python集合set和frozenset的内建方法,帮助读者更好地明白和运用这两种数据结构。

二、集合set的内建方法

集合set提供了多种内建方法,以下将逐一介绍这些方法及其用法。

2.1 add()方法

add()方法用于向集合中添加一个元素,如果元素已存在,则不进行任何操作。

s = set([1, 2, 3])

s.add(4)

print(s) # 输出:{1, 2, 3, 4}

2.2 clear()方法

clear()方法用于清空集合中的所有元素。

s = set([1, 2, 3])

s.clear()

print(s) # 输出:set()

2.3 copy()方法

copy()方法用于返回集合的一个浅拷贝。

s1 = set([1, 2, 3])

s2 = s1.copy()

print(s2) # 输出:{1, 2, 3}

2.4 difference()方法

difference()方法用于返回两个集合的差集。

s1 = set([1, 2, 3])

s2 = set([2, 3, 4])

s3 = s1.difference(s2)

print(s3) # 输出:{1}

2.5 difference_update()方法

difference_update()方法用于更新集合,移除与另一个集合相交的元素。

s1 = set([1, 2, 3])

s2 = set([2, 3, 4])

s1.difference_update(s2)

print(s1) # 输出:{1}

2.6 discard()方法

discard()方法用于移除集合中的指定元素,如果元素不存在,则不进行任何操作。

s = set([1, 2, 3])

s.discard(2)

print(s) # 输出:{1, 3}

2.7 intersection()方法

intersection()方法用于返回两个集合的交集。

s1 = set([1, 2, 3])

s2 = set([2, 3, 4])

s3 = s1.intersection(s2)

print(s3) # 输出:{2, 3}

2.8 intersection_update()方法

intersection_update()方法用于更新集合,保留与另一个集合相交的元素。

s1 = set([1, 2, 3])

s2 = set([2, 3, 4])

s1.intersection_update(s2)

print(s1) # 输出:{2, 3}

2.9 isdisjoint()方法

isdisjoint()方法用于判断两个集合是否没有交集。

s1 = set([1, 2, 3])

s2 = set([4, 5, 6])

print(s1.isdisjoint(s2)) # 输出:True

2.10 issuperset()方法

issuperset()方法用于判断一个集合是否是另一个集合的父集。

s1 = set([1, 2, 3])

s2 = set([1, 2])

print(s1.issuperset(s2)) # 输出:True

2.11 issubset()方法

issubset()方法用于判断一个集合是否是另一个集合的子集。

s1 = set([1, 2])

s2 = set([1, 2, 3])

print(s1.issubset(s2)) # 输出:True

2.12 symmetric_difference()方法

symmetric_difference()方法用于返回两个集合的对称差集。

s1 = set([1, 2, 3])

s2 = set([2, 3, 4])

s3 = s1.symmetric_difference(s2)

print(s3) # 输出:{1, 4}

2.13 symmetric_difference_update()方法

symmetric_difference_update()方法用于更新集合,保留对称差集的元素。

s1 = set([1, 2, 3])

s2 = set([2, 3, 4])

s1.symmetric_difference_update(s2)

print(s1) # 输出:{1, 4}

2.14 union()方法

union()方法用于返回两个集合的并集。

s1 = set([1, 2, 3])

s2 = set([2, 3, 4])

s3 = s1.union(s2)

print(s3) # 输出:{1, 2, 3, 4}

2.15 update()方法

update()方法用于更新集合,添加另一个集合中的所有元素。

s1 = set([1, 2, 3])

s2 = set([2, 3, 4])

s1.update(s2)

print(s1) # 输出:{1, 2, 3, 4}

2.16 pop()方法

pop()方法用于随机移除集合中的一个元素,并返回该元素。

s = set([1, 2, 3])

element = s.pop()

print(element) # 输出:1 或 2 或 3(随机)

print(s) # 输出:{2, 3} 或 {1, 3} 或 {1, 2}

2.17 remove()方法

remove()方法用于移除集合中的指定元素,如果元素不存在,则抛出异常。

s = set([1, 2, 3])

s.remove(2)

print(s) # 输出:{1, 3}

二、冻结集合frozenset的内建方法

冻结集合frozenset是集合set的一个不可变版本,于是它的大部分内建方法与集合set相同。以下将简要介绍冻结集合frozenset的一些内建方法。

3.1 copy()方法

copy()方法用于返回冻结集合的一个浅拷贝。

fs1 = frozenset([1, 2, 3])

fs2 = fs1.copy()

print(fs2) # 输出:frozenset({1, 2, 3})

3.2 difference()方法

difference()方法用于返回两个冻结集合的差集。

fs1 = frozenset([1, 2, 3])

fs2 = frozenset([2, 3, 4])

fs3 = fs1.difference(fs2)

print(fs3) # 输出:frozenset({1})

3.3 intersection()方法

intersection()方法用于返回两个冻结集合的交集。

fs1 = frozenset([1, 2, 3])

fs2 = frozenset([2, 3, 4])

fs3 = fs1.intersection(fs2)

print(fs3) # 输出:frozenset({2, 3})

3.4 isdisjoint()方法

isdisjoint()方法用于判断两个冻结集合是否没有交集。

fs1 = frozenset([1, 2, 3])

fs2 = frozenset([4, 5, 6])

print(fs1.isdisjoint(fs2)) # 输出:True

3.5 issuperset()方法

issuperset()方法用于判断一个冻结集合是否是另一个冻结集合的父集。

fs1 = frozenset([1, 2, 3])

fs2 = frozenset([1, 2])

print(fs1.issuperset(fs2)) # 输出:True

3.6 issubset()方法

issubset()方法用于判断一个冻结集合是否是另一个冻结集合的子集。

fs1 = frozenset([1, 2])

fs2 = frozenset([1, 2, 3])

print(fs1.issubset(fs2)) # 输出:True

3.7 symmetric_difference()方法

symmetric_difference()方法用于返回两个冻结集合的对称差集。

fs1 = frozenset([1, 2, 3])

fs2 = frozenset([2, 3, 4])

fs3 = fs1.symmetric_difference(fs2)

print(fs3) # 输出:frozenset({1, 4})

3.8 union()方法

union()方法用于返回两个冻结集合的并集。

fs1 = frozenset([1, 2, 3])

fs2 = frozenset([2, 3, 4])

fs3 = fs1.union(fs2)

print(fs3) # 输出:frozenset({1, 2, 3, 4})

三、总结

本文详细介绍了Python集合set和frozenset的内建方法,包括添加、删除、交集、并集、差集等操作。通过掌握这些方法,可以更加灵活地运用集合这一数据结构,解决实际问题。在实际编程过程中,请按照需要选择合适的集合类型,以大致有最优的效果。


本文由IT视界版权所有,禁止未经同意的情况下转发

文章标签: 后端开发


热门