鱼C论坛

 找回密码
 立即注册
12
返回列表 发新帖
楼主: Amgalang

[已解决]txt文件中删除重复项的问题 求助

[复制链接]
 楼主| 发表于 2022-8-9 17:30:09 | 显示全部楼层
Amgalang 发表于 2022-8-9 17:24
这种输出不改。{A, B=C, B=D}正确呢。

问题一若简单的话也解决一下呗,哈哈哈 和问题二一并处理 省事儿
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-8-9 17:30:27 | 显示全部楼层
Amgalang 发表于 2022-8-9 17:24
这种输出不改。{A, B=C, B=D}正确呢。

我刚找了一下,好像没有你说的元素重复的情况
最像的是这种{A, B=C, C=B},这个要不要改呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-8-9 17:32:49 | 显示全部楼层
鱼cpython学习者 发表于 2022-8-9 17:30
我刚找了一下,好像没有你说的元素重复的情况
最像的是这种{A, B=C, C=B},这个要不要改呢?

那太好啦,我就是怀疑有元素重复,{A, B=C, C=B}这种的不需要修改。
那么只差一个问题一了,哈哈哈。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-8-9 17:34:57 | 显示全部楼层
人造人 发表于 2022-8-9 17:09
这种的又如何处理呢?

您好,另一位鱼友说,没有问题二所述的情况,所以就不麻烦这个题了 哈哈哈 再次感谢,目前就差问题一了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-8-9 17:36:21 | 显示全部楼层
Amgalang 发表于 2022-8-9 17:32
那太好啦,我就是怀疑有元素重复,{A, B=C, C=B}这种的不需要修改。
那么只差一个问题一了,哈哈哈。
import re
with open('C.txt', 'r', encoding='utf-8') as f:
    data = f.readlines()
new_data = []
for item in data:
    item = item.strip()
    sorted_item = sorted(re.sub(r'[{|}]', '', item).split(','))
    new_data.append(','.join(sorted_item))
for index, item in enumerate(new_data):
    if ',' in item and (item in new_data[0:index] or item in new_data[index + 1:]):
        data[index] = '{}\n'
        new_data[index] = ''

with open('B.txt', 'w', encoding='utf-8') as f:
    f.writelines(data)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-8-9 17:40:00 | 显示全部楼层

完美解决,真心感谢,我发您私信了,您看一下。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-8-9 17:44:52 | 显示全部楼层
人造人 发表于 2022-8-9 17:09
这种的又如何处理呢?

再次感谢您,问题已解决咯,学到了好多。我发您私信了,您看一下。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-8-9 17:58:55 | 显示全部楼层
人造人 发表于 2022-8-9 17:09
这种的又如何处理呢?

您好,问题解决了,我学到了好多处理办法,再次感谢,我给您添加好友申请了,您看一下。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-8-9 18:46:41 | 显示全部楼层
Amgalang 发表于 2022-8-9 17:58
您好,问题解决了,我学到了好多处理办法,再次感谢,我给您添加好友申请了,您看一下。

同意了
^_^
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-8-9 20:57:46 | 显示全部楼层
鱼cpython学习者 发表于 2022-8-9 11:54
我不太确定代码是不是百分百正确,我人工查看了几个,应该是对的
我把去重后的文本放到了新的文件叫B.txt
...

晚上好,
我刚发现最后一个问题,就是如我第一个帖子内容,但是这次只是标注待删除的重复集合,而不直接删除。这样能办到吗?

例如以下两个集合:
{A,B,C,A}
{A,B,C,A}

代码跑完后:

待删项-{A,B,C,A}
待删项-{A,B,C,A}

这个样子的。我现在上传了此次需要用到的C2.txt。
这个C2.txt里包含了一些{}空集合,这样的不用操作。就操作有内容的集合。然后按照原来的排序保存下来。不知道能不能呢,麻烦了。

C2.txt

111.85 KB, 下载次数: 2

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

使用道具 举报

 楼主| 发表于 2022-8-9 21:08:58 | 显示全部楼层
鱼cpython学习者 发表于 2022-8-9 11:54
我不太确定代码是不是百分百正确,我人工查看了几个,应该是对的
我把去重后的文本放到了新的文件叫B.txt
...

晚上好,

我刚回复你一个帖子,发现没发出去,现在再发一次。若有重复只看一个就行。
我发现了最后一个问题,就是我这个帖子的第一个求助是删除掉集合内元素位置不同的,重复的集合任务。
那么现在,我发现不能直接删除,得检查。
所以,我想若碰到集合内元素位置不同而构成的重复集合,那么就标注以下,不直接删除。

示例如下:
俩个集合:
{A,B,C,A}
{A,B,C,A}

代码运行后:
待删除——{A,B,C,A}
待删除——{A,B,C,A}

这个样子,而不是直接删除,能否可以呢。

下面我上传了本次工作要用的C2.txt。这个txt里面目前就有{}这样的空集合,不用管他,只在有内容的集合上操作。然后按照原来的排序保存下来。

麻烦了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-8-9 21:49:45 | 显示全部楼层
Amgalang 发表于 2022-8-9 21:08
晚上好,

我刚回复你一个帖子,发现没发出去,现在再发一次。若有重复只看一个就行。
import re
with open('C:\\Users\\fxylo\\Downloads\\C2.txt', 'r', encoding='utf-8') as f:
    data = f.readlines()
new_data = []
for item in data:
    item = item.strip()
    sorted_item = sorted(re.sub(r'[{|}]', '', item).split(','))
    new_data.append(','.join(sorted_item))
for index, item in enumerate(new_data):
    if ',' in item and (item in new_data[0:index] or item in new_data[index + 1:]):
        data[index] = '待删项——' + data[index]

with open('C:\\Users\\fxylo\\Downloads\\B.txt', 'w', encoding='utf-8') as f:
    f.writelines(data)
这个也许可以
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-14 16:39

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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