我在這個論壇中發現了一些解決方案,但他們不像我所希望的那樣工作。以下的輸入數據被用來:確定一個列表是否包含獨特元素
ALY1 ATH BOL BRA
ALY2 ATH BOL BRA
ALY3 ATH BOL BRA
ALY4 ATH BOL BRA
ALY5 BOL BOL BRA
ALY6 ATH BOL BRA 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行。哪一個失敗。 任何幫助表示讚賞。 謝謝。
查看列表是否包含所有唯一元素的最簡單方法是使用len(x)== len(set(x))'。 'set'將刪除所有重複項,然後查看元素數是否改變。 –