首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用循环从python中的给定列表中找到两个数字之间的最低差?

问如何使用循环从python中的给定列表中找到两个数字之间的最低差?
EN

Stack Overflow用户
提问于 2022-07-09 10:52:11
回答 2查看 62关注 0票数 0

我想不出如何使列表中的随机数互相减去,而是找出最小的差。我不能使用def()、排序()、返回或任何导入,因为它们还没有在本课程中。

代码语言:javascript
复制
def findMinDiff(arr, n):
    arr = sorted(arr)
    diff = 10**20
    for i in range(n-1):
        if arr[i+1] - arr[i] < diff:
            diff = arr[i+1] - arr[i]
    return diff
arr = [4, 1, 2, 9, 7, 100, 5, 0, 99, 100]
n = len(arr)
print("The lowest different between two numbers is " + str(findMinDiff(arr, n)))

样本输出:两个数字之间的最低差是0。

EN

回答 2

Stack Overflow用户

发布于 2022-07-09 11:26:47

要在列表中的任意两个相邻值之间找到最小的差异,您可以这样做:

代码语言:javascript
复制
arr = [4, 1, 2, 9, 7, 100, 5, 0, 99, 100]

smallest_diff = float('inf')

for x, y in zip(arr, arr[1:]):
    if (diff := abs(x-y)) < smallest_diff:
        smallest_diff = diff
print(smallest_diff)

输出:

代码语言:javascript
复制
1
票数 1
EN

Stack Overflow用户

发布于 2022-07-09 11:03:25

如您在标记中提到的那样,使用嵌套循环。

代码语言:javascript
复制
min_diff = abs( arr[0] - arr[1] )
for i in range(len(arr)-1):
    for j in range(i+1,len(arr)):
        diff = abs( arr[i] - arr[j] )
        if diff < min_diff:
            min_diff = diff

感谢@stuart

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72920752

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档