python基礎 3 高階運算子

2022-06-20 14:45:16 字數 1658 閱讀 6497

1.異或運算

十進位制的異或運算,先轉成二進位制進行異或,按位進行比較,對應位置相同則為0,對應位置不同則為1,,再從異或結果轉成十進位制。

python中:

1 ^ 1 = 0   

1 ^ 2 = 3

1 ^ 0 = 1

0 ^ 1 = 1

1 的二進位制0000 0001

2 的二進位制0000 0010

1 ^ 2 的二進位制是:0000 0011 換算成十進位制為3

異或的交換律  1 ^ 0 = 0 ^ 1

異或的結合律   1 ^ 2 ^ 3 =  1 ^ (2 ^ 3)

乙個非空整數列表,除了某個元素只出現一次外,其餘每個元素均出現兩次,找到只出現一次的元素,leetcode136

例如 [1,2,3,4,3,2,1]

異或的結合律和交換律

1 ^ 2 ^ 3 ^ 4 ^ 3 ^ 2 ^ 1 = 1 ^ 1 ^ 2 ^ 2 ^ 3 ^ 3 ^ 4 = 0 ^ 4 = 4

defsolve(li):

temp =li[0]

for i in range(1,len(li)):

temp = temp ^li[i]

print

(temp)

結果:4

一般解法:

def solve(li):

for i in range(len(li)):

ret = li.count(li[i])

if ret == 1:

print(li[i])

solve([1,2,3,4,3,2,1])

結果:4

1 - n 放在含有 n + 1 個元素的列表中,只有唯一的乙個元素值重複,其他均只出現一次,每個列表元素只能訪問一次,設計乙個演算法,將它找出來,不能使用輔助儲存空間 leetcode 287分析:找出重複的元素。

1-5個元素的列表-- [1,2,3,4,5]

5+1個元素的列表---[0,1,2,3,4,5]

[1,2,3,3,4,5] 找出3

同樣的異或結合律和交換律

0 ^ 1 ^ 2 ^ 3 ^ 4 ^ 5 ^ 1 ^ 2 ^ 3 ^ 3 ^ 4 ^ 5思路:乙個數奇數次異或自己就是本身,偶數次異或自己就是0,要找出3,就讓3自己異或自己奇數次。其他數異或自己偶數次,就可以了。

0 ^ 1 ^ 2 ^ 3 ^ 4 ^ 5 ^ 1 ^ 2 ^ 3 ^ 3 ^ 4 ^ 5 = 1 ^ 1 ^ 2 ^ 2 ^ 0 ^ 3 ^ 3 ^ 3 ^ 4 ^ 4 ^ 5 ^ 5 = 3

defsove(li):

ret =0

temp_li = [x for x in

range(0,len(li)]

for i in

range(0, len(temp_li))

ret = ret ^ li[i] ^temp_li[i]

print

(ret)

sove([1,2,3,3,4,5])

結果:3

2.按位運算

按位與運算子:參與運算的兩個值,如果兩個相應位都為1,則該位的結果為1,否則為0

a = 1111  0100

b = 1001 1011

a & b = 1001 0000

Python3 基礎(運算子)

以下假設變數a為10,變數b為21 按位運算子是把數字看作二進位制來進行計算的。python中的按位運算法則如下 下表中變數 a 為 60,b 為 13二進位制格式如下 python語言支援邏輯運算子,以下假設變數 a 為 10,b為 20 除了以上的一些運算子之外,python還支援成員運算子,測...

python3運算子 Python3 運算子

python3 運算子 python3 支援以下型別運算子 算術運算子 比較 關係 運算子 賦值運算子 邏輯運算子 位運算子 成員運算子 身份運算子 運算子優先順序 算術運算 a b 2,3 運算子說明 示例加 將兩個物件相加 a b 結果 5 減 將兩個物件相減 a b 結果 1 乘 將兩個物件相...

python3運算子 Python3運算子

什麼是運算子?本章節主要說明python的運算子。舉個簡單的例子 4 5 9。例子中,4 和 5 被稱為運算元,稱為運算子。python語言支援以下型別的運算子 算術運算子 比較 關係 運算子 賦值運算子 邏輯運算子 位運算子 成員運算子 身份運算子 運算子優先順序 接下來讓我們乙個個來學習pyth...