Amgalang 发表于 2022-8-9 17:30:09

Amgalang 发表于 2022-8-9 17:24
这种输出不改。{A, B=C, B=D}正确呢。

问题一若简单的话也解决一下呗,哈哈哈 和问题二一并处理 省事儿

鱼cpython学习者 发表于 2022-8-9 17:30:27

Amgalang 发表于 2022-8-9 17:24
这种输出不改。{A, B=C, B=D}正确呢。

我刚找了一下,好像没有你说的元素重复的情况
最像的是这种{A, B=C, C=B},这个要不要改呢?

Amgalang 发表于 2022-8-9 17:32:49

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

那太好啦,我就是怀疑有元素重复,{A, B=C, C=B}这种的不需要修改。
那么只差一个问题一了,哈哈哈。

Amgalang 发表于 2022-8-9 17:34:57

人造人 发表于 2022-8-9 17:09
这种的又如何处理呢?

您好,另一位鱼友说,没有问题二所述的情况,所以就不麻烦这个题了 哈哈哈 再次感谢,目前就差问题一了

鱼cpython学习者 发表于 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 or item in new_data):
      data = '{}\n'
      new_data = ''

with open('B.txt', 'w', encoding='utf-8') as f:
    f.writelines(data)

Amgalang 发表于 2022-8-9 17:40:00

鱼cpython学习者 发表于 2022-8-9 17:36


完美解决,真心感谢,我发您私信了,您看一下。

Amgalang 发表于 2022-8-9 17:44:52

人造人 发表于 2022-8-9 17:09
这种的又如何处理呢?

再次感谢您,问题已解决咯,学到了好多。我发您私信了,您看一下。

Amgalang 发表于 2022-8-9 17:58:55

人造人 发表于 2022-8-9 17:09
这种的又如何处理呢?

您好,问题解决了,我学到了好多处理办法,再次感谢,我给您添加好友申请了,您看一下。

人造人 发表于 2022-8-9 18:46:41

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

同意了
^_^

Amgalang 发表于 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里包含了一些{}空集合,这样的不用操作。就操作有内容的集合。然后按照原来的排序保存下来。不知道能不能呢,麻烦了。

Amgalang 发表于 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里面目前就有{}这样的空集合,不用管他,只在有内容的集合上操作。然后按照原来的排序保存下来。

麻烦了。

鱼cpython学习者 发表于 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 or item in new_data):
      data = '待删项——' + data

with open('C:\\Users\\fxylo\\Downloads\\B.txt', 'w', encoding='utf-8') as f:
    f.writelines(data)

这个也许可以
页: 1 [2]
查看完整版本: txt文件中删除重复项的问题 求助