我在这个论坛上找到了一些解决方案,但它们并没有像我希望的那样起作用。使用以下输入数据:
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行,但失败了。 感谢您的帮助。 谢谢
试试这个:
如果列表
x
中的所有元素都是唯一的,则返回True
,否则返回False
set(x)
是x
的一组元素,删除了任何重复项。如果它具有与x
相同的元素计数,则不存在重复项。否则就有了相关问题 更多 >
编程相关推荐