鱼C论坛

 找回密码
 立即注册
查看: 1653|回复: 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函数哪里需要你自己修改一下。因为我不知道你的文件打开路径,也不知道文件编码格式。
  1. filetxt=open('a.txt')
  2. #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']
  3. dict1=dict()
  4. for lines in filetxt:
  5.     list2=lines.split()
  6.     if list2[0] not in dict1:
  7.         dict1.setdefault(list2[0], list2[1:])
  8.     else:
  9.         for j in list2[1:]:
  10.             if j not in dict1[list2[0]]:
  11.                 dict1[list2[0]].append(j)
  12.         
  13. for key in dict1:
  14.     dict1[key].sort()
  15.     print(key,'     '.join(dict1[key]),sep="     ")
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

使用道具 举报

发表于 2020-4-27 10:34:27 | 显示全部楼层
  1. f=open("123.txt")
  2. zd={}
  3. for e in f:
  4.     txt=e.split()
  5.     if txt[0] in zd.keys():
  6.         zd[txt[0]].extend(filter(lambda s:s not in zd[txt[0]],txt[1:]))
  7.     else:
  8.         zd[txt[0]]=txt[1:]
  9. 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 | 显示全部楼层
用集合来排除重复的项目:
  1. with open('a.txt') as f:
  2.     a={}
  3.     for i in f:
  4.         line=i.split()
  5.         if a.setdefault(line[0]):
  6.             a[line[0]]=set(line[1:]) | a[line[0]]
  7.         else:
  8.             a[line[0]]=set(line[1:])

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

使用道具 举报

发表于 2020-4-27 15:38:31 | 显示全部楼层    本楼为最佳答案   
open函数哪里需要你自己修改一下。因为我不知道你的文件打开路径,也不知道文件编码格式。
  1. filetxt=open('a.txt')
  2. #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']
  3. dict1=dict()
  4. for lines in filetxt:
  5.     list2=lines.split()
  6.     if list2[0] not in dict1:
  7.         dict1.setdefault(list2[0], list2[1:])
  8.     else:
  9.         for j in list2[1:]:
  10.             if j not in dict1[list2[0]]:
  11.                 dict1[list2[0]].append(j)
  12.         
  13. for key in dict1:
  14.     dict1[key].sort()
  15.     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, 2024-5-25 09:05

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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