零基础入门学习Python(27)--集合:在我的世界里,你就是唯一

mac2022-06-30  79

知识点

集合:set

set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。

集合中的元素的三个特征:

1)确定性(元素必须可hash) 2)互异性(去重) 3)无序性(集合中的元素没有先后之分),如集合{3,4,5}和{3,5,4}算作同一个集合 【注意】:集合存在的意义就在于去重和关系运算。

创建集合

创建一个空集合需使用set() 工厂函数: 语法:

class set([iterable]) 参数说明: iterable -- 可迭代对象对象;

示例:

>>> set1 = set() >>> type(set1) <class 'set'> >>> set2 = {11,22,33,12,11} >>> type(set2) <class 'set'> >>> set2 {33, 11, 12, 22}

【注意】:注意在创建空集合的时候只能使用s=set(),因为s={}创建的是空字典

>>> a = set('boy') #set一个字符串 >>> a {'b', 'y', 'o'} >>> b = set(['y','b','o','o']) #set一个列表 >>> b {'b', 'y', 'o'} >>> f = set(('k1','k1','k2','k3',1,2)) #set一个元祖 >>> f {1, 2, 'k2', 'k3', 'k1'} >>> c = set({'k1':1,'k2':2,'k3':2}) #set一个字典 >>> c {'k2', 'k1', 'k3'} >>> type(c) <class 'set'> >>> d = {1,2,3,4} >>> type(d) <class 'set'> >>> d {1, 2, 3, 4} >>> e = {(1,2,1,1)} >>> e {(1, 2, 1, 1)}

创建不可变集合

frozenset() 返回一个冻结的集合,冻结后集合不能再添加或删除任何元素。

语法:

class frozenset([iterable]) 参数 iterable -- 可迭代的对象,比如列表、字典、元组等等。

示例:

>>>a = frozenset(range(10)) # 生成一个新的不可变集合 >>> a frozenset([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) >>> b = frozenset('runoob') >>> b frozenset(['b', 'r', 'u', 'o', 'n']) # 创建不可变集合 >>> num3 = frozenset([1,2,3,4,5]) >>> num3 frozenset({1, 2, 3, 4, 5}) >>> num3.add(0) Traceback (most recent call last): File "<pyshell#42>", line 1, in <module> num3.add(0) AttributeError: 'frozenset' object has no attribute 'add'

集合的关系运算

in,not in:判断某元素是否在集合内

>>> a {'b', 'y', 'o'} >>> b in a False >>> 'b' in a

==,!=:判断两个集合是否相等

>>> a = {3,4,5} >>> b = {4,3,5} >>> a == b True

集合的内建方法

集合(s).方法名等价符号方法说明s.issubset(t)s <= t子集测试(允许不严格意义上的子集):s中所有的元素都是t的成员s < t子集测试(严格意义上):s中所有的元素都是t的成员 示例: >>> s = {1,2,3,4} >>> t = {1,2,3,4,5} >>> s.issubset(t) True >>> s <= t True >>> s < t 集合(s).方法名等价符号方法说明s.issuperset(t)s >= t超集测试(允许不严格意义上的超集):t中所有的元素都是s的成员s > t超集测试(严格意义上):t中所有的元素都是s的成员 示例: >>> s = {1,2,3,4,5} >>> t = {1,2,3} >>> s.issuperset(t) True >>> s >= t True >>> s > t True 集合(s).方法名等价符号方法说明s.union(t)s | t合并操作:s “或” t 中的元素 示例: >>> s = {1,2,3,4} >>> t = {2,3,4,5} >>> s.union(t) {1, 2, 3, 4, 5} >>> s|t {1, 2, 3, 4, 5} 集合(s).方法名等价符号方法说明s.intersection(t)s & t交集操作:s “与” t 中的元素 示例: >>> s = {1,2,3,4} >>> t = {2,3,4,5} >>> s & t {2, 3, 4} >>> s.intersection(t) {2, 3, 4} 集合(s).方法名等价符号方法说明s.difference(t)s - t差分操作:在s中存在,在t中不存在的元素 示例: >>> s = {1,2,3,4} >>> t = {2,3,4,5} >>> s - t {1} >>> s.difference(t) {1} 集合(s).方法名等价符号方法说明s.symmetric_difference(t)s ^ t对称差分操作:s “或” t 中的元素,但不是s和t的共有元素 >>> s = {1,2,3,4} >>> t = {2,3,4,5} >>> s.symmetric_difference(t) {1, 5} >>> s ^ t {1, 5} 集合(s).方法名等价符号方法说明s.copy()返回s的浅拷贝 示例: >>> a = {1,2,3} >>> b = a.copy() >>> b {1, 2, 3} 集合(s).方法名等价符号方法说明以下方法不适用于不可变集合frozenset()s.update(t)s |= t将t中的元素添加到s中 示例: >>> s = {1,2,3,4} >>> t = {2,3,4,5} >>> s |= t >>> s {1, 2, 3, 4, 5} >>> s = {1,2,3,4} >>> t = {2,3,4,5} >>> s.update(t) >>> s {1, 2, 3, 4, 5} 集合(s).方法名等价符号方法说明以下方法不适用于不可变集合frozenset()s.intersection_update(t)s &= t交集修改操作:s中仅包括s和t中共有的成员 示例: >>> s = {1,2,3,4} >>> t = {2,3,4,5} >>> s.intersection_update(t) >>> s {2, 3, 4} >>> s = {1,2,3,4} >>> t = {2,3,4,5} >>> s &= t >>> s {2, 3, 4} 集合(s).方法名等价符号方法说明以下方法不适用于不可变集合frozenset()s.difference_update(t)s -= t差修改操作:s中包括仅属于s但不属于t的成员 示例: >>> s = {1,2,3,4} >>> t = {2,3,4,5} >>> s -= t >>> s {1} 集合(s).方法名等价符号方法说明以下方法不适用于不可变集合frozenset()s.symmetric_difference_update(t)s ^= t对称差分修改操作:s中包括仅属于s或仅属于t的成员 示例: >>> s = {1,2,3,4} >>> t = {2,3,4,5} >>> s ^= t >>> s {1, 5} 集合(s).方法名等价符号方法说明以下方法不适用于不可变集合frozenset()s.add(obj)加操作:将obj元素添加到s中 示例: >>> s = {1,2,3,4} >>> s.add('fs') >>> s {1, 2, 3, 4, 'fs'} 集合(s).方法名等价符号方法说明以下方法不适用于不可变集合frozenset()s.remove(obj)删除操作:将obj元素从s中删除,如果s中不存在obj,将引发异常 示例: >>> s = {1, 2, 3, 4, 'fs'} >>> s.remove('fs') >>> s {1, 2, 3, 4} >>> s.remove('a') Traceback (most recent call last): File "<pyshell#182>", line 1, in <module> s.remove('a') KeyError: 'a' 集合(s).方法名等价符号方法说明以下方法不适用于不可变集合frozenset()s.discard(obj)丢弃操作:将obj元素从s中删除,如果s中不存在obj,也没事 示例: >>> s = {1, 2, 3, 4, 'fs'} >>> s.discard('fs') >>> s {1, 2, 3, 4} >>> s.discard('a') >>> s {1, 2, 3, 4} 集合(s).方法名等价符号方法说明以下方法不适用于不可变集合frozenset()s.pop()弹出操作:移除并返回s中任意一个元素s.clear()清除操作:请出s中所有的元素 >>> s = {1, 2, 3, 4} >>> s.pop() 1 >>> s {2, 3, 4} >>> s.pop() 2 >>> s {3, 4} >>> s.clear() >>> s set()

课后习题

转载于:https://www.cnblogs.com/wanbin/p/9514683.html

相关资源:JAVA上百实例源码以及开源项目
最新回复(0)