所以我想在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是我想要的列表。
答案 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
的原因,这是不可原谅的。