社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

python中集合set的使用场景概述

生信修炼手册 • 5 年前 • 957 次点击  

欢迎关注”生信修炼手册”!

在python中,集合set具有字典key的特点,其元素无序且唯一,可以通过大括号{}或者函数set来创建,用法如下

>>> a = set((1, 2, 3))
>>> a
{1, 2, 3}
>>> type(a)

>>> a = {1, 2, 3}
>>> a
{1, 2, 3}
>>> type(a)

需要注意一点,空的集合只可以通过set函数创建,因为单一的大括号用来表示空的字典。集合中元素是无序的,所以无法通过下标访问。同时,集合中的元素是可变的,可以增删改查,用法如下

# 一次增加一个元素
>>> a.add(4)
>>> a
{1, 2, 3, 4}
# 一次增加多个元素
>>> a.update((5,6,7))
>>> a
{1, 2, 3, 4, 5, 6, 7}
# 删除指定元素
>>> a.remove(1)
>>> a
{2, 3, 4, 5, 6, 7}
# 去除任意一个元素
>>> a.pop()
>>> a
{3, 4, 5, 6}
# 删除指定元素
>>> a.discard(4)
>>> a
{3, 5, 6}
# 删除所有元素
>>> a.clear()
>>> a
set()

集合在实际中的使用频率没有list, tuple, dict那么高,是因为它适用的场景较为单一,主要有以下两种

1. 序列去重复

利用集合的特性,可以轻松实现去重复操作,用法如下

>>> a = [1, 2, 3, 3, 4, 5, 5]
>>> b = [i for i in set(a)]
>>> b
[1, 2, 3, 4, 5]

2. 集合操作

进行交集,差集等操作,用法如下

>>> a = set((1, 2, 3))
>>> b = set((2, 3, 4))
# 取并集
>>> a | b
{1, 2, 3, 4}
# 取交集
>>> a & b
{2, 3}
# 取差集,a中独有
>>> a - b
{1}
# 取差集,b中独有
>>> b - a
{4}
# 取a,b中独有元素的合集
>>> a ^ b
{1, 4}

python中的set是可变序列,通过add等方法可以动态修改set中的内容,与之对应的,还有一种frozenset类型,顾名思义,是一种元素不可变的集合,其他特性和set完全相同,可以根据需要来选择set还是frozenset

·end·

—如果喜欢,快分享给你的朋友们吧—



原创不易,欢迎收藏,点赞,转发!生信知识浩瀚如海,在生信学习的道路上,让我们一起并肩作战!
本公众号深耕耘生信领域多年,具有丰富的数据分析经验,致力于提供真正有价值的数据分析服务,擅长个性化分析,欢迎有需要的老师和同学前来咨询。
  更多精彩



  写在最后


转发本文至朋友圈,后台私信截图即可加入生信交流群,和小伙伴一起学习交流。


扫描下方二维码,关注我们,解锁更多精彩内容!


一个只分享干货的

生信公众号



Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/62450
 
957 次点击