您的位置: 网站首页> python基础> 当前文章
集合定义,元素的访问及增删,成员操作符及内置方法
老董-我爱我家房产SEO2020-08-29163围观,125赞
集合中的元素是无序的,不重复、可哈希的(即集合中的元素都是不可变类型,因此像列表和字典等可变类型对象是不能作为集合的元素的),所以集合的成员可以做字典中的键。【集合常用作列表元素的去重】
集合有两种不同的类型:
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。
有宝贵意见可添加站长微信(底部),获取技术资料请到公众号(底部)。同行交流请加群
相关文章
文章评论
-
集合定义,元素的访问及增删,成员操作符及内置方法文章写得不错,值得赞赏


