项目实训记录系列博客
一马当先,争做国家栋梁。
博客说明
本博客初衷是用于学校项目实训知识梳理、工作内容、收获感悟的记录。
若能在您的学习之路上有所帮助,不胜荣幸。但若需转载,也请注明出处。
博客包含以下内容(也是开篇提到的),但不意味着每一篇都会囊括所有;同时,也并非意味着博客的目录结构就是如此。每篇博客内容请看后文中具体的目录。
知识梳理:为了完成目标算法,将会广泛地查阅有关文献资料。将所学知识、资料进行整理。会加入个人理解,一起进行分享。
工作内容:作为项目参与者,在整个项目中所担任的角色、完成的任务。包括个人任务,团队沟通与合作。
收获感悟:您可以简单理解为鸡汤。不过,不同于空洞的话语,在这里所记录的感悟和总结都是结合自身实际、结合项目实际的,相信您能看到博主是怎样的人,也愿您能从中获得启发和前进的动力。
项目实训系列博客目录
1-关键词提取-任务理解&工作分配
1-关键词提取-任务理解&工作分配
2-关键词提取-代码运行云平台colab的使用
3-关键词提取-论文研读-RaKUn算法(1)
4-关键词提取-论文研读-RaKUn算法(2)
5-关键词提取-论文研读-betweenness centrality相关算法(1)
6-关键词提取-论文研读-betweenness centrality相关算法(2)
7-关键词提取-论文研读-load centrality的合理性探讨
8-在IDEA或Pycharm中解决编码问题
9-python:sort()和sorted()使用及对比
10-python:set的使用
11-python:most_common()函数
12-python:enumerate()函数
13-networkx的基础使用
14-收尾工作-答辩内容整理
15-收尾工作-组织协调
Python中的set使用
简介
set是python的基本数据结构之一。作为集合,拥有着数学定义上集合的特性,主要是无序性、不可重复性。
作为基本的数据结构之一,set支持很多操作,网上已经有很多细致入微的教程,在此不总结赘述,只是提一些个人用到的、需要注意的点。
详细方法请前往菜鸟教程查看:https://www.runoob.com/python3/python3-set.html#setmethod
特性
无序性
无序性,最直观的影响是:意味着对set无法进行sort()或是sorted()操作。(关于这两种方法的使用明细,请前往我的另一篇博客:)
如若使用将会报错,提示你set并非是可迭代的对象。这是由set的无序性所决定的,set无法进行sort等跟“顺序“有关的操作,就是因为这个原因。
除了排序,还有通过索引的相关做法:set[i]取值,或是set[0:4]切片,也是不可以的。
实际上,多数情况下我们所需要的都是有序的数据结构。在其他语言,如java,C++中的“数组”概念,就是经典的有序结构,在python中,所谓的“数组”一般指list。对于list就可以排序、通过索引取值、切片操作。可以说,set的无序性,让这种数据结构“受到冷落”。
当然,这种特性是双刃剑,有缺点,自然也有优势。无序性意味着在顺序会影响结果的情况下,可以使用set来避免考虑顺序性。
不可重复性
集合中的元素不可重复。对于这一个老生常谈的特点,有什么应用呢?
最直观的应用:去重。将一个list转化为set后,就可以做到去掉重复元素:
# a is a list, now we'll transform it to set
a = set(a)
但是,这样做也有“后患”:set跟list的性质不同,前文提到的“无序性”可能会影响操作。因此,如果需要对去重之后的数据结构(也就是set)进行排序等需要顺序性的操作,最好是重新转化回来:
# Well, well, I know you wanna a list, right?
a = list(a)
这样就可以只通过python自带的方法可以快速实现去重。
操作
set作为数学意义上的概念,其操作也跟list等对象不同。除了对于数据结构而言常见的添加、删除等操作,set还拥有着自己特殊的操作:交集、并集等。在这里以交集为例进行介绍。
intersection()
简介
intersection() 方法用于返回两个或更多集合中都包含的元素,即交集。
语法
set.intersection(set1, set2, ..., setn)
参数
set1:必填。至少需要一个集合来跟调用此方法的集合进行交集操作。换言之,至少需要两个集合才能取交集。
set2及之后的集合:选填。若有的话就会同时考虑这些集合。
返回值
结果集,是一个新的集合。