Я запустил код с соответствующим отступом, как показано ниже, и получил правильный вывод.
def recursiveSort(sensor_list,n,t): #Recursive Sort
if n == 0:
return sensor_list
for i in range(n-1):
if sensor_list[i][t] > sensor_list[i + 1][t]:
temp = sensor_list[i]
sensor_list[i] =sensor_list[i + 1]
sensor_list[i + 1] = temp
return recursiveSort(sensor_list,n - 1,t)
Dict = {'4213' : ('STEM Center', 0),
'4201' : ('Foundations Lab', 1),
'4204' : ('CS Lab', 2),
'4218' : ('Workshop Room', 3),
'4205' : ('Tiled Room', 4),
'out' : ('Outside', 5),
}
sensor_list=[]
[sensor_list.append((key,Dict[key][0],Dict[key][1])) for key in Dict ] #Adding values to a dictionary into a tuple using list comprehension
print sensor_list
print recursiveSort(sensor_list,len(sensor_list),0)
print recursiveSort(sensor_list,len(sensor_list),1)
print sensor_list
В соответствии с полученным результатом, я думаю, что ошибка связана с неправильным отступом цикла for , Скорее всего, это выглядит так.
if n == 0:
return sensor_list
for i in range(n-1):
if sensor_list[i][t] > sensor_list[i + 1][t]:
temp = sensor_list[i]
sensor_list[i] =sensor_list[i + 1]
sensor_list[i + 1] = temp
Цикл for не выполняется вообще, потому что
И, вероятно, ваш оператор return recursiveSort(sensor_list,n - 1,t)
также вышел из отступ.
Я понял это, проблема была в моей хранимой процедуре, где я не позволил достаточному количеству символов быть переданным в базу данных