Python 为什么打印不打印我的数组
这是我的原始数组:Python 为什么打印不打印我的数组,python,arrays,sorting,for-loop,Python,Arrays,Sorting,For Loop,这是我的原始数组:a=[0,4,7,8,1,3,5,2,6] 这就是它打印的内容:[0,4,7,0,0,0,5,0,0] for i in a: pos = i min = a[i] for j in a: if a[j] < min: min = a[j] pos = j a[pos] = a[i] a[i] = min print(a) a中的i的: pos=i m
a=[0,4,7,8,1,3,5,2,6]
这就是它打印的内容:[0,4,7,0,0,0,5,0,0]
for i in a:
pos = i
min = a[i]
for j in a:
if a[j] < min:
min = a[j]
pos = j
a[pos] = a[i]
a[i] = min
print(a)
a中的i的:
pos=i
min=a[i]
对于a中的j:
如果a[j]
嗯,你想实现什么排序算法?如果您试图做的是气泡排序,那么应该是这样的:
a = [0, 4, 7, 8, 1, 3, 5, 2, 6]
n=len(a)
for i in range(n):
for j in range(n-1):
if a[j+1] < a[j]:
min = a[j+1]
a[j+1] = a[j]
a[j] = min
print(a)
a=[0,4,7,8,1,3,5,2,6]
n=len(a)
对于范围(n)中的i:
对于范围(n-1)内的j:
如果a[j+1]
您没有解释您到底想要什么,但是如果您想对数组进行排序,例如从45312到12345
print(sorted(mylist))
作为"李俊伟",你的算法似乎不正确。但可能还有其他一些事情需要指出 这两条线向远处看
for i in a:
for j in a:
i和j采用的是a
元素的值,而不是索引值。我想你是说
for i in range(len(a)):
得到零的原因是因为min被初始化为0。请注意,它为零不是因为索引,而是因为0是数组中的第一个值。一旦min为零,这是此行数组中的最小值
if a[j] < min:
a[i] = min
将所有设置为零。但并非每个元素都是零,因为[i]不是顺序的。因为i是元素值而不是索引,所以它会跳来跳去。我要进行选择排序,但我缺少n=leng部分。您将列表值与列表索引混淆,这是因为所有值恰好都是列表的有效索引。如果您确定这不是真的(例如,通过向列表中的每个值添加10),那么任何此类混淆都将在问题发生时导致异常,而不是让无意义的结果持续到代码结束。
a[i] = min