0

我有一个类,其唯一目的是对作为参数给出的数组进行排序,但首先,我收到一个错误“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()
4

1 回答 1

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 = 0j = 0temp = 0

于 2013-07-02T21:53:22.120 回答