Quantcast
Channel: CodeSection,代码区,Python开发技术文章_教程 - CodeSec
Viewing all articles
Browse latest Browse all 9596

集合(set)-Python3

$
0
0
set 的 remove() 和 discard() 方法介绍。

函数/方法名

等价操作符 说明 所有集合类型 len(s) 集合基数:集合s中元素个数 set([obj]) 可变集合工厂函数:ojb必须是支持迭代的,由obj中的元素创建集合,否则创建一个空集合 frozenset([obj]) 不可变集合工厂函数:执行方式好set()方法相同,但它返回的是不可变集合 obj in s 成员测试 obj not in s 非成员测试 s == t 等价测试 s != t 不等价测试 s < t (严格意义上)子集测试 s.issubset(t) s <= t 子集测试 s > t (严格意义上)超集测试 s.issuperset(t) s >= t 超集测试 s.union(t) s | t 合并操作 s.intersec-tion(t) s & t 交集操作 s.difference(t) s t 差分操作 s.symmetric_fifference(t) s ^ t 对称差分操作 s.copy() 赋值操作:返回s的(浅复制)副本 仅适用于可变集合 s.update(t) s |= t (Union)修改操作:将t中的成员添加s s.intersection_update(t) s &= t 交集修改操作:s中仅包括s和t中共有的成员 s.difference_update(t) s -= t 差修改操作:s中仅包括属于s但不属于t的成员 s.symmetric_difference_ update(t) s ^= t 对称差分修改操作:s中包括仅属于s或仅属于t的成员 s.add(obj) 加操作:将obj添加到s s.remove(obj) 删除操作 s.discard(obj) 丢弃操作:remove()的友好版本,如果s中存在ojb,从s中删除它 s.pop() Pop操作:移除并返回s中的任意一个值 s.clear() 清除操作:移除s中的所有元素 for example:

以下运行代码会报错,原因在于 第9行 remove()中的‘l’在集合中不存在

而 discard()方法不会报错。

1 # Code based on python 3.x 2 # _*_ coding: utf-8 _*_ 3 # __Author: "LEMON" 4 5 names = ['lemon','zw','lr', 'lr'] 6 names_set = set(names) 7 8 names_set.discard('lemo') 9 names_set.remove('l') 10 # Error: 'lr' is not in names_set 11 print(names_set)

正确的代码如下:

1 # Code based on Python 3.x 2 # _*_ coding: utf-8 _*_ 3 # __Author: "LEMON" 4 5 names = ['lemon','zw','lr', 'lr'] 6 names_set = set(names) 7 8 names_set.discard('lemo') 9 names_set.remove('lr') 10 # Error: 'lr' is not in names_set 11 print(names_set)

运行结果如下:

1 {'lemon', 'zw'}


Viewing all articles
Browse latest Browse all 9596

Trending Articles