鱼C论坛

 找回密码
 立即注册
查看: 1959|回复: 19

[已解决]脚本求助:删除合并重复项

[复制链接]
回帖奖励 5 鱼币 回复本帖可获得 5 鱼币奖励! 每人限 1 次(中奖概率 30%)
发表于 2020-4-27 10:05:33 | 显示全部楼层 |阅读模式

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

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

x
一个文件a.txt,内容如下所示:
a        1        2
a        2
a        2        3
c        2        3        5
c        1        3
f        5
f        1        5        6
f        5        6
......
处理后生成
a        1        2        3
c        1        2        3        5
f        1        5        6


数字顺序可以固定,但要求在所属那一行
第一列字母只能出现一次
最佳答案
2020-4-27 15:38:31
open函数哪里需要你自己修改一下。因为我不知道你的文件打开路径,也不知道文件编码格式。
filetxt=open('a.txt')
#filetxt=['a        1        2','a        2','a        2        3','c        2        3        5','c        1        3','f        5','f        1        5        6','f        5        6']
dict1=dict()
for lines in filetxt:
    list2=lines.split()
    if list2[0] not in dict1:
        dict1.setdefault(list2[0], list2[1:])
    else:
        for j in list2[1:]:
            if j not in dict1[list2[0]]:
                dict1[list2[0]].append(j)
        
for key in dict1:
    dict1[key].sort()
    print(key,'     '.join(dict1[key]),sep="     ")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-27 10:08:22 | 显示全部楼层
数字顺序可以固定,但要求在所属那一行
可否再描述一下?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-27 10:34:27 | 显示全部楼层
f=open("123.txt")
zd={}
for e in f:
    txt=e.split()
    if txt[0] in zd.keys():
        zd[txt[0]].extend(filter(lambda s:s not in zd[txt[0]],txt[1:]))
    else:
        zd[txt[0]]=txt[1:]
print(zd)    
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-27 13:46:44 | 显示全部楼层
我题都没看明白。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-27 13:49:49 | 显示全部楼层

回帖奖励 +5 鱼币

学习一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-27 15:27:20 | 显示全部楼层
用集合来排除重复的项目:
with open('a.txt') as f:
    a={}
    for i in f:
        line=i.split()
        if a.setdefault(line[0]):
            a[line[0]]=set(line[1:]) | a[line[0]]
        else:
            a[line[0]]=set(line[1:])

for j,k in a.items():
    print(j,' '.join(sorted(list(k))))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-27 15:38:31 | 显示全部楼层    本楼为最佳答案   
open函数哪里需要你自己修改一下。因为我不知道你的文件打开路径,也不知道文件编码格式。
filetxt=open('a.txt')
#filetxt=['a        1        2','a        2','a        2        3','c        2        3        5','c        1        3','f        5','f        1        5        6','f        5        6']
dict1=dict()
for lines in filetxt:
    list2=lines.split()
    if list2[0] not in dict1:
        dict1.setdefault(list2[0], list2[1:])
    else:
        for j in list2[1:]:
            if j not in dict1[list2[0]]:
                dict1[list2[0]].append(j)
        
for key in dict1:
    dict1[key].sort()
    print(key,'     '.join(dict1[key]),sep="     ")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-27 16:08:33 | 显示全部楼层

回帖奖励 +5 鱼币

看大神答题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-27 18:32:46 From FishC Mobile | 显示全部楼层
妙啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-27 19:43:21 | 显示全部楼层
哦吼
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-27 19:43:52 | 显示全部楼层

回帖奖励 +5 鱼币

厉害
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-30 20:59:58 | 显示全部楼层
厉害厉害,我是想不到这个
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-1 09:18:45 | 显示全部楼层

回帖奖励 +5 鱼币

给我yb呀
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-1 09:28:07 | 显示全部楼层
看看今天的运气~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

头像被屏蔽
发表于 2020-5-1 13:40:15 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-1 16:19:52 | 显示全部楼层
中~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-1 16:20:24 | 显示全部楼层
再抽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-11-4 15:43:26 | 显示全部楼层
学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-11-4 15:44:12 | 显示全部楼层
1/3
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-11-4 15:44:46 | 显示全部楼层
真滴难
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-17 22:57

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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