You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中使用循环找出给定列表中两个数字的最小差值(不使用def、sorted、return及导入语句)

解决无受限语句的列表最小差值问题

没问题,咱们不用那些受限的工具来实现这个功能!既然不能用sorted()、函数定义或者导入语句,那咱们就手动遍历每一对数字,逐个比较差值,记录最小的那个就行。

实现代码

# 目标数字列表
arr = [4, 1, 2, 9, 7, 100, 5, 0, 99, 100]

# 初始化最小差值为一个极大的数,确保任何实际差值都能比它小
min_diff = 10 ** 20

# 外层循环:逐个取列表中的元素作为第一个比较数
for i in range(len(arr)):
    # 内层循环:只和当前元素之后的元素比较,避免重复计算同一对
    for j in range(i + 1, len(arr)):
        # 计算两数的绝对值差(忽略正负,只看数值差距)
        current_diff = abs(arr[i] - arr[j])
        # 如果当前差值比记录的最小值更小,更新最小值
        if current_diff < min_diff:
            min_diff = current_diff

# 输出最终结果
print(f"The lowest difference between two numbers is {min_diff}")

代码解释

  • 初始化最小差值:用10**20这个极大值作为初始值,保证第一次比较时,任何实际的数字差值都会替换掉它。
  • 嵌套循环遍历所有数对:外层循环遍历每个元素,内层循环从外层元素的下一个位置开始,这样不会重复比较同一对数字(比如不会既比较4和1,又比较1和4),减少不必要的计算。
  • 绝对值差计算:用abs()获取差值的绝对值,因为我们只关心两个数的差距大小,正负不影响结果。
  • 实时更新最小差值:每次计算出当前数对的差值后,和min_diff比较,更小的话就更新min_diff。

运行这段代码,你会得到和示例一样的输出:The lowest difference between two numbers is 0。

内容的提问来源于stack exchange,提问作者Richard Coterie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.27 19:49:09