【发布时间】:2018-07-20 02:47:39
【问题描述】:
我正在尝试创建一个整数列表,然后对其进行扫描,以找到列表元素减法的最小绝对值。我已经创建了列表,但是在找到最小绝对值的代码中存在问题,因为它显示的结果不正确。我认为它可能在循环期间列表元素的位置。你能帮我找到吗?
例如,当我创建一个列表Α = [2, 7, 5, 9, 3, 1, 2]时,min的结果应该是0,但它是1。
这是我的代码:
min=1000
for i in range (1, N-1):
for j in range (i+1, N):
if (abs (A [i-1] - A [j-1])<min):
min = abs (A [i-1] - A [j-1])
print ("%d" %min)
【问题讨论】:
-
Python 索引从
0开始。range(1, N - 1)从1开始。 -
本例中的最小差异为0,因为
2-2 == 0. -
您要扫描\考虑所有可能的减法吗?
-
N 与列表 (A) 的长度有何关系?我猜您可能排除了对最后一个元素的检查,其中
2-2将为 0,因为range(x,y)不包括 y。 -
@CongMa:这不是 Mike 代码中的错误。他使用
A[i-1],因此从 0 开始会引发错误。
标签: python list loops for-loop absolute-value