削除方法は、複からPythonのリストを保持することにあります。[重複]
質問
この質問に答えはこちら
される文字列のリストしたいソートでアルファベット順、およびremove重複している。思いることができ:
from sets import Set
[...]
myHash = Set(myList)
もしっかり身につけるたノウハウ取得のリストのメンバーからのハッシュはアルファベット順です。
んと結婚のハッシュ、そのこします。また、性能というわけではありませんが、問題ない。ソリューションコードで表現を明確に非効率なパフォーマンが不透明です。
他のヒント
あなたの入力はすでにソートされている場合は、それを行うための簡単な方法があるかもしれません。
from operator import itemgetter
from itertools import groupby
unique_list = list(map(itemgetter(0), groupby(yourList)))
あなただけの値としてNone
でOrderedDict使用し、元のリストの順序を保持する場合。
Python2でます:
from collections import OrderedDict
from itertools import izip, repeat
unique_list = list(OrderedDict(izip(my_list, repeat(None))))
のpython3ではそれも簡単です:
from collections import OrderedDict
from itertools import repeat
unique_list = list(OrderedDict(zip(my_list, repeat(None))))
あなたはイテレータ(ジップやリピート)好きではない場合は、発電機を(2&3の両方で動作します)を使用することができます
from collections import OrderedDict
unique_list = list(OrderedDict((element, None) for element in my_list))
それはあなたが後にしている明瞭さ、というよりも高速だ場合は、
、私はこれは非常に明確だと思います:
def sortAndUniq(input):
output = []
for x in input:
if x not in output:
output.append(x)
output.sort()
return output
は、入力リストの各要素のNOT INを繰り返し使用して、しかしはO(n ^ 2)です。
>しかし、私はアルファベット順にハッシュからリストメンバーを取得する方法がわからない。
そうでもないあなたの主な質問が、今後の参考のためにsorted
を使用してロッドの答えは、ソート順にdict
の鍵を横断するために使用することができます:
for key in sorted(my_dict.keys()):
print key, my_dict[key]
...
とtuple
のタプルの最初のメンバーが発注されているが、あなたと同じことを行うことができますので、また、items
:
for key, val in sorted(my_dict.items()):
print key, val
...
文字列データの場合
output = []
def uniq(input):
if input not in output:
output.append(input)
print output
所属していません StackOverflow