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%2 a.append(r) num = num//2 while 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) #当列表的长度大于1 while 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))