秀气灵气诗意 2022-07-15 11:27 采纳率: 97.8%
浏览 22
已结题

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段,去重代码毫不起作用

  • 写回答

2条回答 默认 最新

  • Hann Yang 全栈领域优质创作者 2022-07-15 11:51
    关注

    第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))
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
  • 谷雨睡不醒 2022-07-15 11:58
    关注
    
    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)
    
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 7月23日
  • 已采纳回答 7月15日
  • 创建了问题 7月15日

悬赏问题

  • ¥30 计算机网络子网划分路由模拟操作
  • ¥15 MATLAB的画图问题
  • ¥15 c语言用fopen_s成功打开文件之后闪退
  • ¥20 用C++完成,并且运用数组
  • ¥30 求解电力系统潮流计算结果不收敛问题
  • ¥15 某易易盾点选data解析逆向
  • ¥15 系统崩溃,关于订单的处理
  • ¥15 datax-web连接hive为数据源时发生报错,如何解决?
  • ¥15 plink在进行gwas分析时总读取不到表型
  • ¥20 数据结构与c语言的实践内容