无梦想 发表于 2020-5-8 10:48:39

set是莫子意思

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是什么用的有的发懵了~~

zltzlt 发表于 2020-5-8 10:49:53

set() 就是将一个可迭代对象转化为集合。

KevinHu 发表于 2020-5-8 10:51:47

set()就像list(), tuple()一样,就是把一个东西转换成集合的类型

wp231957 发表于 2020-5-8 10:53:42

去重

wuqramy 发表于 2020-5-8 10:54:27

详见:https://www.runoob.com/python/python-func-set.html

sunrise085 发表于 2020-5-8 10:55:42

打开文件用readlines函数读取返回值是一个列表。
set是将列表a转为集合,列表转集合,就是去掉重复元素,这里也就是去掉重复行

Hoiste 发表于 2020-5-8 10:55:46

set()的作用就是把传入的各种参数返回成一个集合的函数,因为集合是会把重复元素丢掉的,所以可以理解为剔除掉重复元素。

Hoiste 发表于 2020-5-8 11:01:41

根据代码判断,集合c包含所有a文件中所有行的内容,并且把重复行去掉了,然后通过for循环把a文件中删掉集合c里面含有的行,剩下的既是重复行传给集合d,集合c的长度(行数)减掉统计重复行的集合d的长度(行数)就是不重复行的行数了,也就是所谓特殊行

无梦想 发表于 2020-5-8 11:10:44

就是我也百度到这个的意思了 跟各位说的都差不多 可是我还是没能理解这段代码中set的作用 ,这段代码的意思就是输出文件中有多少独特的行,可是set不就是去除了重复的

wuqramy 发表于 2020-5-8 11:11:56

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

是啊
独特的行不就是只出现了一次的行

无梦想 发表于 2020-5-8 11:12:35

wuqramy 发表于 2020-5-8 11:11
是啊
独特的行不就是只出现了一次的行

那这样的话 下面的代码有什么用

wuqramy 发表于 2020-5-8 11:13:13

无梦想 发表于 2020-5-8 11:12
那这样的话 下面的代码有什么用

打印结果
然后关闭文件

无梦想 发表于 2020-5-8 11:22:31

wuqramy 发表于 2020-5-8 11:13
打印结果
然后关闭文件

那样的话会和这段结果的代码有偏差,所以我就搞不懂 那为什么还要循环清除然后再迭代,然后还要用前面迭代的减去之后迭代的
页: [1]
查看完整版本: set是莫子意思