Python 集合 — set

2021/9/21 8:26:47

本文主要是介绍Python 集合 — set,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

引言

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



集合的定义

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

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


{ } 定义

https://img2.sycdn.imooc.com/614841f50001310d07850266.jpg

set() 定义

set() 只接受一个参数

https://img1.sycdn.imooc.com/6148421000015bd008250264.jpg

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

https://img1.sycdn.imooc.com/614842350001c8da06850263.jpg


集合常用操作

集合所有内置方法如下:

https://img3.sycdn.imooc.com/614842440001d69c11480235.jpg

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


集合添加元素

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

https://img1.sycdn.imooc.com/6148425300014c9707970422.jpg


集合移除元素

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

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

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


https://img1.sycdn.imooc.com/6148426a0001ccdb08770450.jpg

https://img2.sycdn.imooc.com/6148427700019a9d06680395.jpg

https://img1.sycdn.imooc.com/614842860001ad6907840374.jpg


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


集合统计、清空元素

len() 统计集合元素个数

clear() 清空集合


https://img4.sycdn.imooc.com/614842cf00017a2507170367.jpg

集合元素获取(遍历)

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

https://img4.sycdn.imooc.com/614842e800015c8508730505.jpg

集合之间的运算

集合差运算 -

https://img1.sycdn.imooc.com/614843000001e8a505770452.jpg


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

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

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


集合并运算 |

https://img1.sycdn.imooc.com/614843370001525906760239.jpg

集合交运算 &

https://img3.sycdn.imooc.com/614843520001724706160237.jpg

集合异或运算 ^

https://img3.sycdn.imooc.com/614843690001fb7805350236.jpg

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


应用场景

普通for循环去重

https://img2.sycdn.imooc.com/6148438200019bbb06370396.jpg

利用集合简单去重

https://img2.sycdn.imooc.com/6148439a0001685305400332.jpg

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

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

https://img1.sycdn.imooc.com/614843b00001d76205780338.jpg

去重保持原来的顺序

使用 sort + set 去重

https://img1.sycdn.imooc.com/614843c80001572f06850352.jpg

使用 sorted + set 去重

https://img1.sycdn.imooc.com/614843db000120cb06870187.jpg


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

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

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




这篇关于Python 集合 — set的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程