如何从另一个列表的一个元素中减去列表中的所有元素?

问题描述

我在数学上将一个列表的所有元素与另一列表的一个元素相减时遇到问题。 这就是我需要的:

>>>list1 = [ a,b,c]
>>>list2 = [ d,e,f]    

result = [ d-a,e-a,f-a,d-b,e-b,f-b,d-c,e-c,f-c]

我尝试使用嵌套循环,但效果不佳:

 subtr = [] 
 for i in list1:
    for j in list2:
       subtr.append(j - i)

如果有人可以帮助我,我将非常感激!

解决方法

具有列表理解和示例值

list1 = [ 10,20,30]
list2 = [ 1,2,3] 

[y - x for x in list1 for y in list2]

出局:

[-9,-8,-7,-19,-18,-17,-29,-28,-27]

您的代码也是如此。您可以使用示例值对其进行测试

subtr = [] 
for i in list1:
    for j in list2:
        subtr.append(j - i)
print(subtr)

出局:

[-9,-27]
,

这是一个简单的解决方案:

list1 = [1,3]
list2 = [10,30]

result = [x-y for y in list1 for x in list2]

结果:

[9,19,29,8,18,28,7,17,27]