使用Insertion排序

时间:2016-09-12 22:25:10

标签: python list sorting

所以我想在python中使用插入排序对一个namedtuples列表进行排序,这是我的代码。

    def sortIt(tripods):
        for i in range(1, len(tripods)):
            tmp = tripods[i][3]
            k = i
            while k > 0 and tmp < tripods[k - 1][3]:
                tripods[k] = tripods[k - 1]
                k -= 1
            tripods[k] = tmp

每当它运行时,它都会给我一个TypeError:int对象不可写。 三脚架是namedTuples的列表,namedTuple的索引3是我想要的列表。

1 个答案:

答案 0 :(得分:0)

def sortIt(tripods):
    for i in range(1, len(tripods)):
        tmp = tripods[i]
        k = i
        while k > 0 and tmp[3] < tripods[k - 1][3]:
            tripods[k] = tripods[k - 1]
            k -= 1
        tripods[k] = tmp

我修改了你的代码。您将tripods[i][3]分配给tmp,即int。这就是编译器警告你int的原因,这是不可原谅的。