私はこれが古い質問であることを知っていますが、これが私のユニークな解決策です: クラス継承!:
class UniqueList(list):
def appendunique(self,item):
if item not in self:
self.append(item)
return True
return False
次に、アイテムをリストに一意に追加する場合は、UniqueList で appendunique を呼び出すだけです。リストから継承するため、基本的にはリストのように振る舞うので、index() などの関数を使用できます。また、true または false を返すため、追加が成功したか (一意の項目)、失敗したか (既にリスト)。
リストから項目の一意のリストを取得するには、項目を UniqueList に追加する for ループを使用します (その後、リストにコピーします)。
使用コードの例:
unique = UniqueList()
for each in [1,2,2,3,3,4]:
if unique.appendunique(each):
print 'Uniquely appended ' + str(each)
else:
print 'Already contains ' + str(each)
版画:
Uniquely appended 1
Uniquely appended 2
Already contains 2
Uniquely appended 3
Already contains 3
Uniquely appended 4
リストにコピー中:
unique = UniqueList()
for each in [1,2,2,3,3,4]:
unique.appendunique(each)
newlist = unique[:]
print newlist
版画:
[1, 2, 3, 4]