您的位置: 网站首页> python基础> 当前文章
集合定义,元素的访问及增删,成员操作符及内置方法
老董-我爱我家房产SEO2020-08-29172围观,124赞
集合中的元素是无序的,不重复、可哈希的(即集合中的元素都是不可变类型,因此像列表和字典等可变类型对象是不能作为集合的元素的),所以集合的成员可以做字典中的键。【集合常用作列表元素的去重】
集合有两种不同的类型:
1.可变集合(set):
可变集合可以进行增加和删除元素,可变集合是不可哈希的,因此不能作为字典的键,
2.不可变集合(frozenset):
不能增加删除元素,可以作为字典的键。
PS:可变集合是集合本身增加删除元素,但是增加的元素也是不可变类型。集合是可变的,集合内的元素是不可变类型并不矛盾!
一、集合的创建以及赋值
集合的创建只能通过set方法和frozenset方法创建。
二、访问集合中的值
集合不是序列类型,也就是跟字典一样都是无序的,因此不能通过下标的方式进行访问里面的元素。可以通过成员操作符in和noti n来判断某个元素是否在集合里面,或者通过for循环把集合中的元素遍历出来。
# ‐*‐ coding: utf‐8 ‐*‐ s1 = set() # 创建空的可变集合 s2 = frozenset() # 创建一个空的不可变集合 print(s1,s2) # 使用set和frozenset方法创建集合,里面的参数必需是可迭代类型且其成员必需是可哈希的 s3 = set('helloworld') # 创建可变集合 s4 = frozenset('helloworld') # 创建不可变集合 # 判断元素是否在集合中 print('h'in s3) # 遍历取出元素 for i in s3: print(i)
D:installpython3python.exe D:/pyscript/test/test1.py set() frozenset() True w r o l h d e Process finished with exit code 0
三、对可变集合进行增删操作
1.用集合内置方法增删元素(通过dir(set)来获取内置方法)
# ‐*‐ coding: utf‐8 ‐*‐ for fun in dir(set): # 过滤掉双下划线方法,双下划线一般是python源码程序员用的,我们暂时不看 if not fun.startswith('_'): print('内建方法:',fun) """ 简单举例,其余方法大家尝试 """ s1 = set('hello') s1.add('哈哈') # 添加元素 print(s1) s1.remove('h') # 移除元素 print(s1) s1.update('world') # 添加多个元素 print(s1) s1.clear() # 清空元素 print(s1)
D:installpython3python.exe D:/pyscript/test/test1.py 内建方法: add 内建方法: clear 内建方法: copy 内建方法: difference 内建方法: difference_update 内建方法: discard 内建方法: intersection 内建方法: intersection_update 内建方法: isdisjoint 内建方法: issubset 内建方法: issuperset 内建方法: pop 内建方法: remove 内建方法: symmetric_difference 内建方法: symmetric_difference_update 内建方法: union 内建方法: update {'e', 'l', '哈哈', 'h', 'o'} {'e', 'l', '哈哈', 'o'} {'e', 'w', 'l', '哈哈', 'r', 'd', 'o'} set() Process finished with exit code 0
方法 | 适用范围 |
---|---|
update() | 不可变集合 |
intersection_update() | 不可变集合 |
diffence_update() | 不可变集合 |
symmetric_diffence_update() | 不可变集合 |
add() | 不可变集合 |
remove() | 不可变集合 |
discard() | 不可变集合 |
pop() | 不可变集合 |
clear() | 不可变集合 |
issubset() | 所有集合 |
issuperset() | 所有集合 |
union() | 所有集合 |
intersection() | 所有集合 |
difference() | 所有集合 |
symmetric_diffence() | 所有集合 |
copy() | 所有集合 |
2.用操作符增删元素
python符号 | 说明 |
---|---|
in | 是……的成员 |
no tin | 不是……的成员 |
== | 等于 |
!= | 不等于 |
< | 是……的真子集 |
<= | 是……的子集 |
> | 是……的真超集 |
>= | 是……的超集 |
& | 交集 |
| | 合集(并集) |
- | (减号) |
^ | 对称差分 |
PS:操作符与内置方法的比较
用操作符时,操作符两边的操作数必须是集合,而内建方法接受的参数可以是迭代类型的。
很赞哦!
python编程网提示:转载请注明来源www.python66.com。
有宝贵意见可添加站长微信(底部),获取技术资料请到公众号(底部)。同行交流请加群
相关文章
文章评论
-
集合定义,元素的访问及增删,成员操作符及内置方法文章写得不错,值得赞赏