これはおそらく簡単な答えだと思いますが、わかりません。重複をリストに保持するためのPythonでの最良の方法は何ですか:
x = [1,2,2,2,3,4,5,6,6,7]
出力は次のようになります。
[2,6]
私はこのリンクを見つけました: Find (and keep) duplicates of sublist in python、しかし私はまだPythonに比較的慣れていないため、単純なリストで機能させることができません。
これはおそらく簡単な答えだと思いますが、わかりません。重複をリストに保持するためのPythonでの最良の方法は何ですか:
x = [1,2,2,2,3,4,5,6,6,7]
出力は次のようになります。
[2,6]
私はこのリンクを見つけました: Find (and keep) duplicates of sublist in python、しかし私はまだPythonに比較的慣れていないため、単純なリストで機能させることができません。
私は使用しますcollections.Counter
:
from collections import Counter
x = [1, 2, 2, 2, 3, 4, 5, 6, 6, 7]
counts = Counter(x)
output = [value for value, count in counts.items() if count > 1]
これは、アイテムが最初に複製されたときの順序を保持する別のバージョンです。これは、渡されたシーケンスにハッシュ可能なアイテムが含まれていることのみを前提としており、言語が導入された時期set
またはyeild
言語に導入されたとき (いつでも) に戻ります。
def keep_dupes(iterable):
seen = set()
dupes = set()
for x in iterable:
if x in seen and x not in dupes:
yield x
dupes.add(x)
else:
seen.add(x)
print list(keep_dupes([1,2,2,2,3,4,5,6,6,7]))
シンプルに保つ:
array2 = []
aux = 0
aux2=0
for i in x:
aux2 = i
if(aux2==aux):
array2.append(i)
aux= i
list(set(array2))
それはうまくいくはずです