我有两个数字列表,a,b我想这样减去;b-a。
我希望这对于初学者来说很容易理解,所以我不想导入类或库。
这是我尝试过的,并且有效:
a = [420, 660, 730, 735]
b = [450, 675, 770, 930]
i = 0
j = len(a)
difference = []
while i < j:
difference.append(b[i] - a[i])
i += 1
print (difference)
>>[30, 15, 40, 195] **the correct result**
但是,必须有一种更简单的方法来执行此操作,而无需导入我缺少的类或库。
一种简单的显示方式是:
a = [420, 660, 730, 735]
b = [450, 675, 770, 930]
print([v2 - v1 for v1, v2 in zip(a, b)])
zip
将在列表中的每个元素之间创建一个元组。因此,如果您单独运行zip,则将具有以下内容:
zip(a, b)
[(420, 450), (660, 675), (730, 770), (735, 930)]
然后,为了进一步分析我提供的答案中发生的情况,您正在做的事情是遍历列表中的每个元素,然后指定v1
和v2
是元组中的每个项目。然后,v2 - v1
几乎可以完成您的数学运算。所有这些都包装在所谓的列表理解内。
如果您仍然确信仍然根本不想使用zip,并且如果您的示例使用的是两个相等的列表,那么我建议您删除while循环并使用for。您的解决方案将与您已经拥有的解决方案非常相似,但是这样:
n = []
for i, v in enumerate(a):
n.append(b[i] - v)
print(n)
因此,您必须创建一个新列表来保存新数据。使用enumerate
,您可以在每次迭代中获取索引和值,并将数学运算附加到新列表中。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句