一维列表分为二维列表
def matrix(data,nrow,ncol):
result = [[data[i] for i in range(j,j+ncol)] for j in range(0,nrow*ncol,ncol)]
return result
matrix(data=[1,2,3,4,5,6],nrow=3,ncol=2) #= [[1,2],[3,4],[5,6]]
二维列表合为一位列表
def flat(nestedlist):
outcome = [j for i in nestedlist for j in i]
return outcome
flat([[1,2,3],[4,5,6],[7,8,9]])# = [1,2,3,4,5,6,7,8,9]
输出单位矩阵列表
def identity(nrow):
result = [ [int(i==j) for i in range(nrow)] for j in range(nrow)]
return result
identity(3)# = [[1,0,0],[0,1,0],[0,0,1]]
输出两个字符串相同的字符并大写
x = "trokday"
y = "smuodtay"
z=''.join([ i for i in x if i in y ]).upper()
print(z) # TODAY
一个数a,输出比a小的所有2x×3y×5z的数的列表
def decompose(n):
answer = [2**x*3**y*5**z for x in range(n) for y in range(n) for z in range(n) if 2**x<=n and 3**y <=n and 5**z<=n ]
answer.sort()
answer=answer[0:n]
return answer
decompose(3) #= [1,2,3]
是否为回文字符串
def recycle(string):
if string==string[::-1]:
return "YES"
else:
return "NO"
recycle('abcba') # "YES" # 'NO'
类似二进制的列表转十进制
def binary(lis):
answer = int(''.join([str(i) for i in lis]),2)
return answer
binary([1,0,1]) #= 5