我是python的新手。我正在编写程序,以便找到元素序列的最小差异。例如,我有一个输入A=[7,8,9],M=3
。S=(|7-7|,|7-8|,|7-9|,|8-7|,|8-8|,|8-9|,|9-7|,|9-8|,|9-9|)。S=[0,1,2,1,0,1,2,1,0]
。我们在列表中有9个不同的元素。因此,s的M个最小元素的输出为0。因为0是3个最小的元素。有人知道我做错了什么吗?
enter code here
F=[]
A = [7, 8, 9]
M = 3
S=0
for i in range(len(A)):
for j in range(len(A)):
S = S + (abs(A[i] - A[j]))
t = F.append(S)
t.sort()
for k in range(len(t)):
if k == M:
break
print(t[k])
发布于 2021-08-01 06:15:59
正确的代码如下:
A = [7, 8, 9]
M = 3
S=[] #
for i in range(len(A)):
for j in range(len(A)):
S.append(abs(A[i] - A[j]))
# t = F.append(S) # t is not defined before
S.sort()
print(S[M-1]) # S is sorted
如果你有任何问题,请问我。
发布于 2021-08-01 06:04:25
在这里,你可以试试这个:
x=[7,8,9]
y=[abs(j-k) for j in x for k in x]
print(y)
你所做的基本上就是一个嵌套循环。下面是它的运行方式:
for i in x:
for j in x:
#==== This is what your program needs =====
i=7
|__j=7
|__j=8
|__j=9
i=8
|__j=7
|__j=8
|__j=9
i=9
|__j=7
|__j=8
|__j=9
现在,如果打印它看起来是什么样子:
x=[7,8,9]
for i in x:
print(f'The main number is {i}.')
for j in x:
print(f"{i} - {j} = {abs(i-j)}")
这正是你所需要的
The main number is 7.
7 - 7 = 0
7 - 8 = 1
7 - 9 = 2
The main number is 8.
8 - 7 = 1
8 - 8 = 0
8 - 9 = 1
The main number is 9.
9 - 7 = 2
9 - 8 = 1
9 - 9 = 0
https://stackoverflow.com/questions/68607871
复制相似问题