我编写了一个小脚本,以升序排列一组随机数。 所有内容都正确排序,但最后一个值(最大值)重复并抛出错误“ValueError:列表.删除(x) :x不在列表中。你知道吗
基本上,脚本的工作原理是,使用for循环,获取最小的值,删除它并将其添加到新数组中。继续这样做,一切都会好起来的。 我附上我的代码,任何帮助都非常感谢。很抱歉,我的婚礼取消了,我把它搞砸了。你知道吗
from random import randint
from random import sample
import random
global randomnum
def generateArray(size,lowerBound,upperBound):
array = []
array = random.sample(range(lowerBound,upperBound),size)
return array
def sortArray(size,lowerBound,upperBound):
useArray = generateArray(size,lowerBound,upperBound)
print useArray
arraysize = len(useArray)
counter = 1
minval = 0
difsize = arraysize -1
actualVal =0
newArray =[]
for i in range(0,arraysize+difsize):
for n in range(0,arraysize-1):
if useArray[minval] < useArray[counter]:
counter = counter +1
actualVal = useArray[minval]
else:
minval = counter
actualVal = useArray[counter]
counter = counter +1
arraysize = arraysize -1
counter =1
minval =0
# Adding this code fixed it
if i + arraysize ==i:
newArray.extend(useArray)
return newArray
print actualVal
#t = len(newArray)
#print t
newArray.append(actualVal)
useArray.remove(actualVal)
return newArray
print sortArray(10,1,30)
一个实际的问题是,索引为
arraysize+difsize
的数组超过了数组大小,而且给定结果中有多个值的可能性很小,特别是如果大小很大,范围很小,remove
将删除所有出现的值。你知道吗为什么不使用内置设施的Python呢。 尝试:
如果必须手动执行,请尝试气泡排序:
冒泡排序不是最快的排序,但它是最简单的排序之一,通常会比您当前的技术完成得更快,这将是相当缓慢的。你知道吗
相关问题 更多 >
编程相关推荐