[Xiaobaiシリーズ]新しいデータが到着した後、存在しない場合は保持し、存在する場合は削除する

方法1:リスト操作

"" "トラバーサルは、異なるデータリスト内の各要素を検索する必要があります
。nums内の数値がno_duplicate_listにない場合は
、リストno_duplicate_listに追加します。
数値が既にリストにある場合は、削除します。" 「」

nums = [1,2,3,4,5,1,2,3,5]
no_duplicate_list = []
for i in nums:
    if i not in no_duplicate_list:
        no_duplicate_list.append(i)
    else:
        no_duplicate_list.remove(i)
print(no_duplicate_list.pop())

方法2:数学的方法(または収集方法)

'' '
数学的概念2 ∗(a + b + c)−(a + a + b + b + c)= c
' ''

nums = [1,2,3,4,2,3,4]
no_duplicate_list2 = 2*sum(set(nums)) - sum(nums)
print(no_duplicate_list2)

方法3:ビット演算(XORを使用)

'' '
0とバイナリビットでXOR演算を実行すると、結果はこのバイナリビット
a⊕0= aのまま
です。同じバイナリビットでXOR演算を実行すると、返される結果は0です
a⊕a= 0
XORは交換を満たします法則と結合法則
a⊕b⊕a=(a⊕a)⊕b=0⊕b= b
なので、一意の数値を取得するには、すべての数値をXORする必要があります。
'' '

nums = [1,3,5,1,3]
a = 0
for i in nums:
    a ^= i
print(a)

方法4:ハッシュテーブル方式

'' ' numsのすべての要素を走査して、hash_tableに現在の要素のキーがあるかどうか

確認ます。
ない場合は、現在の要素をキーとしてhash_tableに挿入します。
最後に、hash_tableに要素が1つだけあります。popitemを使用して取得します
' ''

nums = [1,2,3,4,3,2,1]
hash_table = {}
for i in nums:
    try:
        hash_table.pop(i)
    except:
        hash_table[i] = 1
print(hash_table.popitem()[0])
公開された42の元の記事 賞賛された28 訪問4961

おすすめ

転載: blog.csdn.net/KaelCui/article/details/105424389