首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >计算两个列表中每个元素之间的差异

计算两个列表中每个元素之间的差异
EN

Stack Overflow用户
提问于 2017-12-19 05:10:38
回答 2查看 90关注 0票数 0

我想计算一个列表的每个条目与另一个列表的每个元素之间的差异。考虑两个列表A和B

代码语言:javascript
复制
A = [1,2,3,4] B=[5,6,7]

新的列表c应该有12个条目。

代码语言:javascript
复制
C=[1-5,1-6,1-7,2-5,2-6,2-7,....,4-7]
C=[-4,-5,-6,-3,-4,-5,....,-3]

当然,使用循环可以做到这一点,但是有没有更快、更有效的方法呢?我的列表A和B的维度分别为8000和2500,我必须连续做大约150次。非常感谢您的提前!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-12-19 05:24:06

通过使用numpy中的repeattile

代码语言:javascript
复制
import numpy as np

np.repeat(A,len(B))-np.tile(B,len(A))
Out[221]: array([-4, -5, -6, -3, -4, -5, -2, -3, -4, -1, -2, -3])
票数 1
EN

Stack Overflow用户

发布于 2017-12-19 13:07:05

您可以在一行中尝试,而无需导入任何模块:

代码语言:javascript
复制
print(list(map(lambda x:list(map(lambda y:(x-y),b)),a)))

输出:

代码语言:javascript
复制
[[-4, -5, -6], [-3, -4, -5], [-2, -3, -4], [-1, -2, -3]]

或者使用列表理解:

代码语言:javascript
复制
print([(i-j) for i in a for j in b])

输出:

代码语言:javascript
复制
[-4, -5, -6, -3, -4, -5, -2, -3, -4, -1, -2, -3]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47876461

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档