1.列表推導式
基本語法:
[表達式? for語句1 if 語句1? for語句2? if語句2 ........?]
1.零到九的平方列表
a = [i*i for i in range(10)] print(a)
2.for 循環前面加if? else
#如果是偶數乘以2,如果是奇數直接輸出 a = [i*2 if i%2 == 0 else i for i in range(20) ] print(a)
3.for循環后加if
#找出二十以內的偶數 a = [i for i in range(20) if i%2 == 0] print(a)
4.設計二維數組
#外層是行里層是列 m = [[i+3*j for i in range(1,4)] for j in range(3)] print(m)
n = [[j for i in range(3)] for j in range(2,5)] print(n)
5.二維數組的運算
求指定列組成的列表
#取m的第三列組成的列表 L = [ raw[2] for raw in m ] print(L)
求對角線組成的列表
#求對角線組成的列表 k = [ m[i][i] for i in range(len(m))] print(k)
求m和n矩陣的乘積
#返回一維結果 l = [m[row][col]*n[row][col] for row in range(3) for col in range(3)] print(l)
#返回二維結果 j = [[m[row][col] * n[row][col] for col in range(3)] for row in range(3)] print(j)
2.進制轉換
利用棧操作進行進制轉換(先進后出,后進先出)
def d2b(num):a = []b = ""while (num>0):r = num%2a.append(r)num = num//2while len(a):b += str(a.pop())return "ob"+ b print(d2b(60)) print(bin(60))
3.猴子游戲(隊列操作)
先進先出,后進后出
#n是有幾只猴子,m是第幾只猴子被踢出 def f(n,m):arr= []# 遍歷猴子的數量for i in range(1,n+1):#將猴子的數量加到列表arr里面arr.append(i)#當列表的長度大于1while len(arr)>1:#遍歷第幾個猴子被踢出去for i in range(m-1):#將列表arr的第一個元素踢出去arr.append(arr.pop(0))arr.pop(0)#返回第幾個猴子被踢出去return arr[0] print(f(5,6))