Python 集合set概念和操作

# 集合
#     概念
#         无序的, 不可随机访问的, 不可重复的元素集合
#         与数学中集合的概念类似,可对其进行交、并、差、补等逻辑运算
#         分为可变集合和非可变集合
#             set
#                 为可变集合
#                     增
#                     删
#                     改
#             frozenset
#                 不可变集合
#                     创建好之后, 无法增删改
#     定义
#         可变集合set
#             s = {1,2,3,4}
#             s = set(iterable)
#                 其中iterable可以是字符串、列表、元组、字典等
#                 但是为dict时,只会获取提Key作为set的元素
#             集合推导式
#                  s = set(x**2 for x in range(1, 10) if x % 2 == 0)
#                 s = {推导式}
#         不可变集合frozenset
#             fs = frozenset(iterable)
#                 其中iterable可以是字符串、列表、元组、字典等
#                 但是为dict时,只会获取提Key作为set的元素
#             集合推导式
#                  s = frozenset(x**2 for x in range(1, 10) if x % 2 == 0)
#         注意
#             1. 创建一个空集合时, 需要使用set() 或者 frozenset(), 不能使用 s = {}
#                 会被识别成为字典
#             2. 集合中的元素, 必须是可哈希的值
#                 如果一个对象在自己的生命周期中有一哈希值(hash value)是不可改变的,
# 那么它就是可哈希的(hashable)的
#                 暂时理解为 不可变类型
#             3. 如果集合中的元素值出现重复, 则会被合并为1个
#     常用操作
#         单一集合操作
#             可变集合
#                 增
#                     s.add(element)
#                     注意:
#                         必须保证添加的元素是可哈希的值
#                 删
#                     s.remove(element)
#                         指定删除set对象中的一个元素
#                         如果集合中没有这个元素,则返回一个错误
#                     s.discard(element)
#                         指定删除集合中的一个元素
#                         若没有这个元素,则do nothing
#                     s.pop(element)
#                         随机删除并返回一个集合中的元素
#                         若集合为空,则返回一个错误
#                     s.clear()
#                         清空一个集合中的所有元素
#                 改
#                     元素为不可变类型, 不能修改
#                 查
#                     无法通过索引或key进行查询
#                     1. 通过 for in 进行遍历
s = {1, 2, 3}
for v in s:
    print(v)

#                     2. 通过迭代器进行访问
its = iter(s)   #生成迭代器
print(next(its))    #1
print(next(its))    #2
print(next(its))    #3

its = iter(s) #需要从新生成,因为上面的next已经移动指针到最后
#for in 迭代器
for v in its:
    print(v)

#             不可变集合
#                 不能增删改
#                 查
#                     1. 通过 for in 进行遍历
#                     2. 通过迭代器进行访问
#         集合之间操作
#             交集
#                 intersection(Iterable)
#                     字符串
#                         只判定字符串中的非数字
#                     列表
#                     元组
#                     字典
#                         值判定key
#                     集合
#                     ...
#                 逻辑与 ‘&‘
#                 intersection_update(…)
#                     交集计算完毕后, 会再次赋值给原对象
#                         会更改原对象
#                         所以, 只适用于可变集合
s1 = {1, 2, 3, 4, 5}
s2 = {4, 5, 6}
result = s1.intersection(s2)
print(result , type(result))    #{4, 5} <class ‘set‘>
result = s1 & s2
print(result , type(result))    #{4, 5} <class ‘set‘>

#             并集
#                 union()
#                     返回并集
#                 逻辑或 ‘|‘
#                     返回并集
#                 update()
#                     更新并集

#             差集
#                 difference()
#                 算术运算符减 ‘-‘
#                 difference_update()

#             判定
#                 isdisjoint()两个集合不相交
#                 issuperset()一个集合包含另一个集合
#                 issubset()一个集合包含于另一个集合
#         注意
#             可变与不可变集合混合运算, 返回结果类型以运算符左侧为主

原文地址:https://www.cnblogs.com/delphiclub/p/8463683.html

时间: 2024-11-06 07:13:55

Python 集合set概念和操作的相关文章

Python 集合(set)类型的操作——并交差

介绍 python的set是一个无序不重复元素集,基本功能包括关系测试和消除重复元素. 集合对象还支持并.交.差.对称差等. sets 支持 x in set. len(set).和 for x in set.作为一个无序的集合,sets不记录元素位置或者插入点.因此,sets不支持 indexing, slicing, 或其它类序列(sequence-like)的操作. 基本操作 >>> x = set("jihite") >>> y = set(

Python 集合内置函数大全(非常全!)

Python集合内置函数操作大全 集合(s).方法名 等价符号 方法说明 s.issubset(t) s <= t 子集测试(允许不严格意义上的子集):s 中所有的元素都是 t 的成员   s < t 子集测试(严格意义上):s != t 而且 s 中所有的元素都是 t 的成员 s.issuperset(t) s >= t 超集测试(允许不严格意义上的超集):t 中所有的元素都是 s 的成员   s > t 超集测试(严格意义上):s != t 而且 t 中所有的元素都是 s 的成

Python 集合set()添加删除、交集、并集、集合操作详解

在Python set是基本数据类型的一种集合类型,它有可变集合(set())和不可变集合(frozenset)两种.创建集合set.集合set添加.集合删除.交集.并集.差集的操作都是非常实用的方法. 创建集合set python set类是在python的sets模块中,大家现在使用的python2.7.x中,不需要导入sets模块可以直接创建集合.>>>set('boy')set(['y', 'b', 'o']) 集合添加.删除 python 集合的添加有两种常用方法,分别是add

Python 集合set添加删除、交集、并集、集合操作符号

在Python中集合set是基本数据类型的一种,它有可变集合(set)和不可变集合(frozenset)两种.创建集合set.集合set添加.集合删除.交集.并集.差集的操作都是非常实用的方法. 1.创建集合 set类是在python的sets模块中,大家现在使用的python2.3中,不需要导入sets模块可以直接创建集合.>>>set('boy')set(['y', 'b', 'o']) 2.集合添加.删除 集合的添加有两种常用方法,分别是add和update.集合add方法:是把要

Python集合(set)类型的操作

python的set和其他语言类似, 是一个无序不重复元素集, 基本功能包括关系测试和消除重复元素. 集合对象还支持union(联合), intersection(交), difference(差)和sysmmetric difference(对称差集)等数学运算. sets 支持 x in set, len(set),和 for x in set.作为一个无序的集合,sets不记录元素位置或者插入点.因此,sets不支持 indexing, slicing, 或其它类序列(sequence-l

转: Python集合(set)类型的操作

python的set和其他语言类似, 是一个无序不重复元素集, 基本功能包括关系测试和消除重复元素. 集合对象还支持union(联合), intersection(交), difference(差)和sysmmetric difference(对称差集)等数学运算. sets 支持 x in set, len(set),和 for x in set.作为一个无序的集合,sets不记录元素位置或者插入点.因此,sets不支持 indexing, slicing, 或其它类序列(sequence-l

Python集合(set)类型的操作 (转)

python的set和其他语言类似, 是一个无序不重复元素集, 基本功能包括关系测试和消除重复元素. 集合对象还支持union(联合), intersection(交), difference(差)和sysmmetric difference(对称差集)等数学运算. sets 支持 x in set, len(set),和 for x in set.作为一个无序的集合,sets不记录元素位置或者插入点.因此,sets不支持 indexing, slicing, 或其它类序列(sequence-l

2 . Python集合(set)类型的操作

python的set和其他语言类似, 是一个无序不重复元素集, 基本功能包括:关系测试和消除重复元素. 集合对象还支持union(联合), intersection(交), difference(差)和sysmmetric difference(对称差集)等数学运算. sets 支持 x in set, len(set),和 for x in set.作为一个无序的集合,sets不记录元素位置或者插入点.因此,sets不支持 indexing, slicing, 或其它类序列(sequence-

Python集合(set)类型的操作 【转】

[python] view plaincopy python 的set和其他语言类似, 是一个无序不重复元素集, 基本功能包括关系测试和消除重复元素. 集合对象还支持union(联 合), intersection(交), difference(差)和sysmmetric difference(对称差集)等数学运算. sets 支持 x in set, len(set),和 for x in set.作为一个无序的集合,sets不记录元素位置或者插入点.因此,sets不支持 indexing,