python中的两个二维数组,如何让这两个二维数组在不使用循环的情况下对应项进行加减乘除运算呢?

打个比方,两个数组分别是a[3][4]和b[3][4],python有没有提供这样的一种函数,让这两个数组中对应的元素(从a[0][0],b[0][0]到a[2][3],... 打个比方,两个数组分别是a[3][4]和b[3][4],python有没有提供这样的一种函数,让这两个数组中对应的元素(从a[0][0],b[0][0]到a[2][3],b[2][3])进行加减乘除运算,然后能得到新的数组c[3][4] 展开
 我来答
linkun
推荐于2018-03-13 · TA获得超过503个赞
知道小有建树答主
回答量:140
采纳率:50%
帮助的人:103万
展开全部
>>> a =[[1,2,3,6],[2,6,3,9],[3,7,9,0]]
>>> b =[[5,7,3,1],[5,7,2,4],[12,34,56,98]]
>>> c = [[a[i][j] -b[i][j] for j in range(4)] for i in range(3)]
>>> c
[[-4, -5, 0, 5], [-3, -1, 1, 5], [-9, -27, -47, -98]]
追问
我说的是在不使用循环的情况下,因为我现在只知道a[i][j],b[i][j]两个数组,但问题是我并不知道i和j 的值是多少
追答
稍作修改即可,加个len()取出长度。

c = [[a[i][j] -b[i][j] for j in range(len(a[i]))] for i in range(len(a))]
而且我并没有使用循环,我使用的是列表推导式。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
蒲公英随风飘舞哈
2012-08-04 · TA获得超过1431个赞
知道小有建树答主
回答量:324
采纳率:0%
帮助的人:527万
展开全部
另外一种方法

a= ...
b=...

python2.x

[map(lambda x,y:x-y,x,y) for (x,y) in zip(a,b)]

python3.x

[list(map(lambda x,y:x-y,x,y)) for (x,y) in zip(a,b)]

其中的lambda x,y:x-y 换成你需要的其他操作,这里用的是减法操作
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
柒涩琴
2012-08-03 · TA获得超过728个赞
知道小有建树答主
回答量:127
采纳率:100%
帮助的人:132万
展开全部
如果你只是不知道 i, j 的具体值(但是确定两数组都是 i * n),那一样可以迭代。
追问
额。。。能具体说明么?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
825355051
2012-08-04
知道答主
回答量:20
采纳率:0%
帮助的人:13.5万
展开全部
不懂你啥意思,试试zip()这个吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式