Python3怎么给已经排序的文件去重?

k ='''
AC,AC,ac,fvv,123,1234,1234,acssg
'''
import re
 
r = re.sub(r'[~`!@#$%^&*()_\-+=|\\{\}\[\]:;\"\'<>,.?/·!¥…()—【:“”】、?《》,。]+', '\n', k)
#print(r)
 
# 队列从小到大排序
str1 = (sorted(r.split(), key=len))
for e in str1[:]:
    print(e)
 
 
 
e = e.split()
 
f = []
 
for i in e:
    if i not in f:
        f.append(i)
 
print('\n'.join(f))
 

问题卡在第2段,去重代码毫不起作用

第16行不要了,第20行直接遍历str1, str1不是字符串,已由第10行转成列表的sorted()对象了

k ='''
AC,AC,ac,fvv,123,1234,1234,acssg
'''
import re
 
r = re.sub(r'[~`!@#$%^&*()_\-+=|\\{\}\[\]:;\"\'<>,.?/·!¥…()—【:“”】、?《》,。]+', '\n', k)
#print(r)
 
# 队列从小到大排序
str1 = (sorted(r.split(), key=len))
for e in str1[:]:
    print(e)
 
f = []
 
for i in str1:
    if i not in f:
        f.append(i)
 
print('\n'.join(f))

str1 = (sorted(r.split(), key=len))
for e in str1[:]:
    print(e)
 
 
 
e = e.split()

这段代码没看懂,循环体外的e是最后一次循环的结果(这里是acssg)你对他split干什么

后面循环改成这样就可以去重了

for i in str1 : #这块用e干什么
    if i not in f:
        f.append(i)