确定列表是否由唯一元素组成

2024-09-27 17:38:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我在这个论坛上找到了一些解决方案,但它们并没有像我希望的那样起作用。使用以下输入数据:

ALY1 ATH BOL胸罩
ALY2 ATH BOL文胸
ALY3 ATH BOL胸罩
ALY4 ATH BOL文胸
ALY5 BOL BOL文胸
ALY6 ATH BOL文胸BOL

我只想保留第1行、第2行、第3行和第4行,而不是第5行和第6行,因为这里会出现重复。以下是我使用的:

f_groups = open(args[1], "r")
f_idl_group = open(args[2], "w")
def allUnique(x):
    seen = set()
    return not any(i in seen or seen.add(i) for i in x)

for line in f_groups :
    line_elements = line.split()
    identifyers = line_elements[0:]
    if allUnique(identifyers) :
        print("all is well" + identifyers[0])
        #write to file

使用上述脚本,所有行都会通过,但使用:

if not allUnique(identifyers) :

只有第5行和第6行通过。 后者是我所期望的,但我想要相反的结果,只通过第1、2、3和4行,但失败了。 感谢您的帮助。 谢谢


Tags: inforlinenotargselementsopengroups
1条回答
网友
1楼 · 发布于 2024-09-27 17:38:28

试试这个:

def allUnique(x):
    return len(x) == len(set(x))

如果列表x中的所有元素都是唯一的,则返回True,否则返回Falseset(x)x的一组元素,删除了任何重复项。如果它具有与x相同的元素计数,则不存在重复项。否则就有了

相关问题 更多 >

    热门问题