Python基础讲义(九):集合类型
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Python基础讲义(九):集合类型,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2739字,纯文字阅读大概需要4分钟。
内容图文
![Python基础讲义(九):集合类型](/upload/InfoBanner/zyjiaocheng/620/eb7eb327e4704a95b284511417fefe70.jpg)
集合类型
0x01内容导图
0x02集合的特点
- 无序,不可重复,可枚举,不可嵌套
- 使用花括号(空字典用“{}”表示,空集合要使用
set()
的方式) - 集合对象本身可修改,但集合内的元素要求不可变
- 集合底层实现也使用了哈希技术,集合可以被立即为只有键的字典
- 简单示例
>>> s = {} #空字典
>>> sa = set() #空集合的正确表示
>>> sb = {1, 2, 3, 4}
>>> sc = {[1, 2], [3, 4]} #集合元素要求可哈希
Traceback (most recent call last):
File "<pyshell#68>", line 1, in <module>
sc = {[1, 2], [3, 4]}
TypeError: unhashable type: 'list'
>>> sc = {(1, 2), (3, 4)}
0x03集合的常用操作
-
集合运算
- 交集:& or intersection函数
- 并集:| or union函数
- 差集:- or difference函数
- 对称差:^ or symmetric_difference函数
- 上述运算产生新的结果集,交、差、对称差有原地运算版(函数名后有update),并集的原地版是update函数
- 子集/超集:<= or issubset函数,>= or issuperset函数
-
添加元素:add函数
-
删除元素:remove函数
-
是否相交判断:isdisjoint函数,不相交为True,相交为False
-
代码演示
>>> a = {1, 2, 3, 4, 5}
>>> b = {2, 4, 6, 8}
>>> a & b
{2, 4}
>>> a.union(b)
{1, 2, 3, 4, 5, 6, 8}
>>> a - b
{1, 3, 5}
>>> a ^ b
{1, 3, 5, 6, 8}
>>> a.symmetric_difference(b)
{1, 3, 5, 6, 8}
>>> c = a - b
>>> c.issubset(a)
True
>>> a.issuperset(c)
True
>>> 2 in a
True
>>> 8 in a
False
>>> a.isdisjoint(b)
False
#集合应用:去重
>>> >>> s = "asdfsgfjalfjaldfj"
>>> len(set(s))
7
>>> set(s)
{'f', 's', 'a', 'g', 'd', 'l', 'j'}
#集合修改
>>> a = set()
>>> a.add(3)
>>> a.add(5)
>>> a
{3, 5}
>>> a.remove(5)
>>> a
{3}
0x04高级内置函数
- sorted排序函数:对可迭代对象,默认生成新的升序列表
>>> ls = [8, 7, 9, 11, 5]
>>> sorted(ls) #生成新列表
[5, 7, 8, 9, 11]
>>> ls #原列表不变
[8, 7, 9, 11, 5]
>>> ls.sort() #列表本身的sort方法是原地排序,自身修改
>>> ls
[5, 7, 8, 9, 11]
>>> sorted(ls, reverse=True) #降序排列
[11, 9, 8, 7, 5]
- map映射函数:对可迭代对象每个函数执行映射操作
- filter过滤函数:按条件选取可迭代对象中的元素
#将标准输入的字符串分割成字符串列表,然后对列表中的每个串执行int转换
>>> nums = map(int, input().split())
12 5 10 8
>>> ls = list(nums) #Python3返回的是map对象,可以用list转换函数
>>> ls
[12, 5, 10, 8]
>>> " ".join(map(str, ls))
'12 5 10 8'
>>> even = filter(lambda x : x % 2 == 0, ls) #匿名函数后面介绍
>>> list(even)
[12, 10, 8]
- zip函数:将多个可迭代对象,按索引位置打包为元组,再由这些元组构成新列表返回
>>> ptx = [1, 2, 3] #x坐标列表
>>> pty = [2, 3, 4] #y坐标列表
>>> pts = list(zip(ptx, pty)) #形成平面坐标点集
>>> pts
[(1, 2), (2, 3), (3, 4)]
- max/min/sum函数:求最大值,最小值,求和
- all函数:所有条件都满足;any函数:满足一个即可
- enumerate(iter):迭代所有对象,并返回对象的索引号,即返回的是二元组(i, 对象)
ls = [19, 8, 7, 10]
for i, x in enumerate(ls):
print(f"{i}:{x}")
0:19
1:8
2:7
3:10
0x05小结
- 理解集合特点,熟悉集合使用场合
- 熟练掌握集合常用操作并能灵活应用
- 熟练掌握高级内置函数的使用
内容总结
以上是互联网集市为您收集整理的Python基础讲义(九):集合类型全部内容,希望文章能够帮你解决Python基础讲义(九):集合类型所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。