我有一个类,其唯一目的是对作为参数给出的数组进行排序,但首先,我得到一个错误“int not iterable”。我的问题是这个错误是什么,我正在进行正确的排序吗?谢谢。这是我的分拣机类,由下面的其他类调用。
class Sorter:
def reverseWackySort(self, vals):
i = 0
j = 0
temp = 0
length = len(vals)
for i in length:
for j in (length -1):
if vals[j] > vals[j+1]:
temp = vals[j]
vals[j] = vals[j+1]
vals[j+1] = temp;
return vals
代码 -
from Sorter import Sorter
def TestSorter():
rws = Sorter()
nums = [88, 1, 7, 32, 18, 77, 34, 99, 54, 22]
print "\nBefore Sort: ", nums
rws.reverseWackySort(nums)
print "After Sort: {}\n".format(nums)
TestSorter()
答案 0 :(得分:8)
您正在尝试迭代整数:
for i in length:
for j in (length -1):
也许您想要迭代范围:
for i in range(length):
for j in range(length -1):
range()
为您生成一系列整数(但不包括)length
。
请注意,您可以在Python中交换变量而无需临时中介:
vals[j], vals[j+1] = vals[j+1], vals[j]
并且您也不需要'预先声明'变量; i = 0
,j = 0
和temp = 0
行是多余的。