python基础 列表表达式 zip 二维数组

试验一下列表表达式在二维数组中的应用,比较基础的例子,直接上代码,分析都在注释中,注意zip是如何把两个矩阵m和n打包的。

import math

def mySum(a,b):
    he=[]
    for (x,y) in zip(a,b):
        he.append(x+y)
    return he

def myMul(a,b):
    he=[]
    for (x,y) in zip(a,b):
        he.append(x*y)
    return he

def isTrue(x):
    for item in x:
        if not item:
            return False
    return True

# 以二维矩阵为例,实验列表表达式
m = [[1,2,3],[4,5,6],[7,8,9]]
n = [[2,2,2],[3,3,3],[4,4,4]]

# 求两个二维矩阵的和与积
he=[mySum(x,y) for (x,y) in zip(m,n)]
ji=[myMul(x,y) for (x,y) in zip(m,n)]
print(he)
print(ji)

# 对角线元素求和
print(sum([m[i][i] for i in range(len(m))]))

# 水仙花数
num=153
res=sum([int(i)**3 for i in str(num)])
print(res==num)

# 回文数
num="1234321"
length=math.floor(len(num)/2)
res=[num[i]==num[len(num)-1-i] for i in range(length)]
print(res)

你可能感兴趣的:(python)