gpt4 book ai didi

python : find difference between two arrays in python

转载 作者:太空宇宙 更新时间:2023-11-04 07:30:05 24 4
gpt4 key购买 nike

我在 python 中有两个数组。

arr1 = [(7, 0.78, 7920), (8, 0.9, 9000)]
arr2 = [(7, 1.68, 8460)]

在此数组中,第一个值是 ID (7,8,7)。我希望结果基于 ID。如果 ID 相同则获取其他两个值之间的差异。
arr1arr2 ID 7 相同则减去 (1.68-0.78 = 0.9) 和 (8460-7920 = 540) 否则将相同。如何获得这样的结果?

diffArray = [(7, 0.9, 540), (8, 0.9, 9000)]

最佳答案

这是一种方法。首先,我正在创建从 ID 到其他值的字典:

arr1 = [(7, 0.78, 7920), (8, 0.9, 9000)]
arr2 = [(7, 1.68, 8460)]

dict1 = {i: (x, y) for i, x, y in arr1}
dict2 = {i: (x, y) for i, x, y in arr2}

然后我使用带有条件的列表理解来做正确的事情:

diffArray = [
(
i,
abs(dict2[i][0] - dict1[i][0]),
abs(dict2[i][1] - dict1[i][1]),
)
if i in dict2
else (i, dict1[i][0], dict1[i][1])
for i in dict1
]

结果可能有点出乎意料:

[(7, 0.8999999999999999, 540), (8, 0.9, 9000)]

明显的不精确是由于浮点表示。要解决这个问题(如果它很重要),请使用 Decimal 或对值进行四舍五入。

关于 python : find difference between two arrays in python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49668991/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com