List.reverse()
l1 = [110, 220, 330, 440, 550]
print("l1: ", l1)
l1.reverse() # 原地reverse
print("l1: ", l1)
# l1: [110, 220, 330, 440, 550]
# l1: [550, 440, 330, 220, 110]
List[::-1]
l2 = [110, 220, 330, 440, 550]
print("l2: ", l2)
l2 = l2[::-1] # 原地reverse
print("l2: ", l2)
# l2: [110, 220, 330, 440, 550]
# l2: [550, 440, 330, 220, 110]
List[::-1]
def reverse3(l):
print(l, "in function")
l = l[::-1] # 內部物件複製一份,不影響外面
print(l, "in function")
l3 = [110, 220, 330, 440, 550]
print("l3: ", l3)
reverse3(l3) # 所以沒有reverse的效果
print("l3: ", l3)
# l3: [110, 220, 330, 440, 550]
# [110, 220, 330, 440, 550] in function
# [550, 440, 330, 220, 110] in function
# l3: [110, 220, 330, 440, 550]
List[::-1]
def reverse4(l):
print(l, "in function")
l[:] = l[::-1] # 改變物件的值
print(l, "in function")
l4 = [110, 220, 330, 440, 550]
print("l4: ", l4)
reverse4(l4)
print("l4: ", l4)
# l4: [110, 220, 330, 440, 550]
# [110, 220, 330, 440, 550] in function
# [550, 440, 330, 220, 110] in function
# l4: [550, 440, 330, 220, 110]
https://math.stackexchange.com/questions/38473/is-xor-a-combination-of-and-and-not-operators
Sep 22, 2022t = 6 data = [1, 2, 3, 4, 5, 6, 7, 8, 9] # 若拿掉6,找不到目標會掉進無窮迴圈 不斷輸出4 5 4 # 若拿掉5, 6則不斷輸出3 4 3 l = 0 r = len(data) m = 0 while l < r: last_m = m
Sep 15, 2022前、中、後 的命名由來 若在只有左右子節點的情況下,照慣例順序一定是先執行左、再執行右 當今天加入了parent節點,parent底下會長出左右兩個子節點的情況時 (left代號左、right代號右、parent剛好在左右子節點的中間,所以代號為中) 這個parent節點,相對於左右子節點來說,遍歷的順序要排在最前、中間、還是最後,就有了三種可能,於是分別對應到前序、中序、後序 前序 PreOrder: 中 -> 左 -> 右 中序 InOrder: 左 -> 中 -> 右
Jun 25, 2022x, y, z = 1, 1, 1 def outer(): x, y, z = 2, 2, 2 def inner(): global x # 指定在inner區塊內的y 使用的是第1行的變數(全域) nonlocal y # 指定在inner區塊內的x 使用的是第5行的變數(最接近inner的非區域變數) # 在inner區塊內的z沒有做特殊處理,指定的是第12行的變數(區域變數)
Jun 8, 2022or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up