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))