继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

Python 集合 — set

慕的地6264312
关注TA
已关注
手记 99
粉丝 14
获赞 55

引言

set(集合)虽然用的很少,但它是一个无序的不重复元素序列,用来简单的去重挺快的。



集合的定义

set(集合) 与列表类似,不同之处在于集合的 元素不重复

集合和字典一样也是用 {} 定义,但元素之间使用 , 分隔,或者使用 set()


{ } 定义

http://img2.mukewang.com/614841f50001310d07850266.jpg

set() 定义

set() 只接受一个参数

http://img.mukewang.com/6148421000015bd008250264.jpg

注意:空集合不能用 s = {} 来定义这样默认是字典,应该 s = set()

http://img1.mukewang.com/614842350001c8da06850263.jpg


集合常用操作

集合所有内置方法如下:

http://img3.mukewang.com/614842440001d69c11480235.jpg

方法太多我选几个常用的测试一下。


集合添加元素

使用 add() 即可向集合中添加元素

http://img1.mukewang.com/6148425300014c9707970422.jpg


集合移除元素

  • remove() 移除集合中的元素,且如果元素不存在,会报错

  • discard() 移除集合中的元素,且如果元素不存在,不会发生错误

  • pop() 随机移除集合内的一个元素


http://img.mukewang.com/6148426a0001ccdb08770450.jpg

http://img2.mukewang.com/6148427700019a9d06680395.jpg

http://img1.mukewang.com/614842860001ad6907840374.jpg


其实set 集合的 pop方法会将集合的左边第一个元素进行删除,并返回删除的元素。


集合统计、清空元素

len() 统计集合元素个数

clear() 清空集合


http://img4.mukewang.com/614842cf00017a2507170367.jpg

集合元素获取(遍历)

集合不支持索引,也没有方法进行获取,因此只能采用 for ... in ... 遍历方式获取元素。

http://img4.mukewang.com/614842e800015c8508730505.jpg

集合之间的运算

集合差运算 -

http://img1.mukewang.com/614843000001e8a505770452.jpg


  • a - b 就相当于在 a 中去除跟 b 相同的元素

  • b - a 也就是在 b 中去除跟 a 相同的元素

  • a - b 等同于 a.difference(b)


集合并运算 |

http://img.mukewang.com/614843370001525906760239.jpg

集合交运算 &

http://img3.mukewang.com/614843520001724706160237.jpg

集合异或运算 ^

http://img3.mukewang.com/614843690001fb7805350236.jpg

把 a, b 集合中的相同元素都去掉,剩下的就是 ^ 异或运算的结果。


应用场景

普通for循环去重

http://img2.mukewang.com/6148438200019bbb06370396.jpg

利用集合简单去重

http://img2.mukewang.com/6148439a0001685305400332.jpg

这样把原来的列表类型变成了集合类型,这样更不好操作,这样不是想要的结果。

因此要做到 去重加类型不变,只要再嵌套一个list() 即可

http://img.mukewang.com/614843b00001d76205780338.jpg

去重保持原来的顺序

使用 sort + set 去重

http://img.mukewang.com/614843c80001572f06850352.jpg

使用 sorted + set 去重

http://img.mukewang.com/614843db000120cb06870187.jpg


————————————————

版权声明:本文为CSDN博主「忆想不到的晖」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/qq_43629857/article/details/120346851


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP