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)