1. 程式人生 > >Python按位異或運算子^應用案例一則:查詢只出現一次的數字

Python按位異或運算子^應用案例一則:查詢只出現一次的數字

問題描述:有一個整數列表,裡面有一個數字只出現了一次,而其他數字都出現了4次,要求查詢這個只出現了一次的數字。

思路要點:一個數字和自己異或一次會變成0。

參考程式碼:

import random

def onlyYou(lst):
    r = lst[0]
    for item in lst[1:]:
        r = r ^ item
    return r

for i in range(100000):
    lst = random.sample(range(1000), 8)
    lst = lst[:-1]*4 + lst[-1:]
    random.shuffle(lst)

    # 傳統套路

    r = onlyYou(lst)

    # reduce,函數語言程式設計
    rr = reduce(lambda x,y:x^y, lst, 0)
    if lst.count(r)!=1 or lst.count(rr)!=1:

        print(lst)
        print(r, rr)

執行後程序無輸出,說明思路和程式碼正確。

----------相關閱讀----------

----------喜大普奔----------

1、繼《Python程式設計基礎》(2017年9月第5次印刷)、《Python程式設計(第2版)

》(2017年9月第4次印刷)、《Python可以這樣學》(2017年7月第3次印刷)系列圖書之後,董付國老師新書《Python程式設計開發寶典》已於2017年8月1日在清華大學出版社出版,並於2017年9月進行了第2次印刷。為慶祝新書《Python程式設計開發寶典》全面上架,清華大學出版社聯合“贛江圖書專營”淘寶店推出特價優惠活動,《Python程式設計開發寶典》原價69元,新書上架期間超低價39.8元,可以複製下面的連結使用瀏覽器開啟檢視圖書詳情和購買:

https://detail.tmall.com/item.htm?spm=a1z10.3-b-s.w4011-14464369246.84.46f16db0roWfX4&id=557107249812&rn=339cbc9df2bac424664103917dedfbd2&abbucket=8&tbpm=3