鱼C论坛

 找回密码
 立即注册
查看: 601|回复: 12

[已解决]set是莫子意思

[复制链接]
发表于 2020-5-8 10:48:39 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
a = open("latex.log","r").readlines()
c = set(a)
for i in c:
    a.remove(i)
d = set(a)
print("共{}独特行".format(len(c)-len(d)))
a.close()
敢问大佬 这里面的set是什么用的  有的发懵了~~
最佳答案
2020-5-8 10:55:42
打开文件用readlines函数读取返回值是一个列表。
set是将列表a转为集合,列表转集合,就是去掉重复元素,这里也就是去掉重复行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-8 10:49:53 | 显示全部楼层
set() 就是将一个可迭代对象转化为集合。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-8 10:51:47 | 显示全部楼层
set()就像list(), tuple()一样,就是把一个东西转换成集合的类型
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-8 10:53:42 | 显示全部楼层
去重
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-8 10:54:27 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-8 10:55:42 | 显示全部楼层    本楼为最佳答案   
打开文件用readlines函数读取返回值是一个列表。
set是将列表a转为集合,列表转集合,就是去掉重复元素,这里也就是去掉重复行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-8 10:55:46 | 显示全部楼层
set()的作用就是把传入的各种参数返回成一个集合的函数,因为集合是会把重复元素丢掉的,所以可以理解为剔除掉重复元素。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-8 11:01:41 | 显示全部楼层
根据代码判断,集合c包含所有a文件中所有行的内容,并且把重复行去掉了,然后通过for循环把a文件中删掉集合c里面含有的行,剩下的既是重复行传给集合d,集合c的长度(行数)减掉统计重复行的集合d的长度(行数)就是不重复行的行数了,也就是所谓特殊行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-8 11:10:44 | 显示全部楼层
就是我也百度到这个的意思了 跟各位说的都差不多 可是我还是没能理解这段代码中set的作用 ,这段代码的意思就是输出文件中有多少独特的行,可是set不就是去除了重复的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-8 11:11:56 | 显示全部楼层
无梦想 发表于 2020-5-8 11:10
就是我也百度到这个的意思了 跟各位说的都差不多 可是我还是没能理解这段代码中set的作用 ,这段代码的意思 ...

是啊
独特的行不就是只出现了一次的行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-8 11:12:35 | 显示全部楼层
wuqramy 发表于 2020-5-8 11:11
是啊
独特的行不就是只出现了一次的行

那这样的话 下面的代码有什么用
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-8 11:13:13 | 显示全部楼层
无梦想 发表于 2020-5-8 11:12
那这样的话 下面的代码有什么用

打印结果
然后关闭文件
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-8 11:22:31 | 显示全部楼层
wuqramy 发表于 2020-5-8 11:13
打印结果
然后关闭文件

那样的话会和这段结果的代码有偏差,所以我就搞不懂 那为什么还要循环清除然后再迭代,然后还要用前面迭代的减去之后迭代的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-20 17:58

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表