gpt4 book ai didi

python - 如何执行在Python循环中迭代的元素总和

转载 作者:太空宇宙 更新时间:2023-11-04 08:54:37 25 4
gpt4 key购买 nike

我是 Python 的新手,在理解其逻辑工作原理方面遇到了困难。我正在尝试构建一个简单的代码,给定两个列表,找到列表中每个数字之间的差异并返回最小差异的平均值。

假设我有这两个列表:

list1=[1, 4, 10]
list2=[2, 3, 6]

使用下面的代码,我可以用第二个列表的数字迭代第一个列表的数字:

for x in list1:

diff=[abs(y-x) for y in list2]
print (diff)

[1, 2, 5] # that is, 1-2, 1-3 and 1-6
[2, 1, 2] # that is, 4-2, 4-3 and 4-6
[8, 7, 4] # that is, 10-2, 10-3, 10-6

使用以下代码,我可以找到每次迭代的最小差异:

for x in list1:

diff=[abs(y-x) for y in list2]
mindiff=min(int(s) for s in diff)

print (mindiff)

1
1
4

我对此很满意。现在我想对所有最小差异求和,然后将总和除以我计算出的差异数。这是我没有得到的部分。换句话说,我如何构建一个函数来总结 for 循环所做的所有迭代?之后,(在本例中为 6 (1+1+4))我可以轻松地将差异之和除以 list2 的最大范围。

我该怎么做?

预先感谢您的回答

最佳答案

我认为您可以使用 for 循环外的变量实现您想要的效果,添加每次迭代的值和计算迭代次数的变量。

list1=[1, 4, 10]
list2=[2, 3, 6]


min_sum = 0
n = 0
for x in list1:

diff=[abs(y-x) for y in list2]
mindiff=min(int(s) for s in diff)
min_sum += mindiff
n+=1

print (mindiff)

print(min_sum/n)

希望对你有帮助

关于python - 如何执行在Python循环中迭代的元素总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31319369/

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