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 = 0および行j = 0temp = 0冗長です。

于 2013-07-02T21:53:22.120 に答える