您的位置:首页 > 编程语言 > Python开发

集合(set)-Python3

2016-12-31 13:36 239 查看

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()方法不会报错。

# Code based on Python 3.x
# _*_ coding: utf-8 _*_
# __Author: "LEMON"

names = ['lemon','zw','lr', 'lr']
names_set = set(names)

names_set.discard('lemo')
names_set.remove('l')
# Error: 'lr' is not in names_set
print(names_set)


正确的代码如下:

# Code based on Python 3.x
# _*_ coding: utf-8 _*_
# __Author: "LEMON"

names = ['lemon','zw','lr', 'lr']
names_set = set(names)

names_set.discard('lemo')
names_set.remove('lr')
# Error: 'lr' is not in names_set
print(names_set)


运行结果如下:

{'lemon', 'zw'}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: