如何从另一个列表中的一个元素中减去列表中的所有元素?
How to subtract all elements in list from one element in another list?
我在用数学方法减去一个列表的所有元素与另一个列表的一个元素时遇到问题。
这就是我需要的:
>>>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]
我尝试使用嵌套循环 for 但效果不佳:
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, -8, -7, -19, -18, -17, -29, -28, -27]
这是一个简单的解决方案:
list1 = [1, 2, 3]
list2 = [10, 20, 30]
result = [x-y for y in list1 for x in list2]
结果:
[9, 19, 29, 8, 18, 28, 7, 17, 27]
我在用数学方法减去一个列表的所有元素与另一个列表的一个元素时遇到问题。 这就是我需要的:
>>>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]
我尝试使用嵌套循环 for 但效果不佳:
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, -8, -7, -19, -18, -17, -29, -28, -27]
这是一个简单的解决方案:
list1 = [1, 2, 3]
list2 = [10, 20, 30]
result = [x-y for y in list1 for x in list2]
结果:
[9, 19, 29, 8, 18, 28, 7, 17, 27]