首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Python气泡排序递归。我做错了什么?

Python气泡排序递归。我做错了什么?
EN

Stack Overflow用户
提问于 2018-07-14 03:32:42
回答 1查看 317关注 0票数 -1

我正在为class做一个递归赋值。我知道如何使用这个公式,但我相信我在这里做了一些错误的事情,沿着正确打印字典的路线。有人能帮我弄清楚如何得到正确的输出吗?

[('4213', 'STEM Center', 0), ('4201', 'Foundations Lab', 1), ('4204', 'CS Lab', 2), ('4218', 'Workshop Room', 3), ('4205', 'Tiled Room', 4), ('Out', 'Outside', 5)]
[('4201', 'Foundations Lab', 1), ('4204', 'CS Lab', 2), ('4205', 'Tiled Room', 4), ('4213', 'STEM Center', 0), ('4218', 'Workshop Room', 3), ('Out', 'Outside', 5)]
[('4204', 'CS Lab', 2), ('4201', 'Foundations Lab', 1), ('Out', 'Outside', 5), ('4213', 'STEM Center', 0), ('4205', 'Tiled Room', 4), ('4218', 'Workshop Room', 3)]
[('4204', 'CS Lab', 2), ('4201', 'Foundations Lab', 1), ('Out', 'Outside', 5), ('4213', 'STEM Center', 0), ('4205', 'Tiled Room', 4), ('4218', 'Workshop Room', 3)]

相反,我得到的是:

[('4213', 'STEM Center', 0), ('4218', 'Workshop Room', 3), ('4201', 'Foundations Lab', 1), ('4205', 'Tiled Room', 4), ('4204', 'CS Lab', 2), ('out', 'Outside', 5)]

无无无

我已经弄清楚了这一点。

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
EN

回答 1

Stack Overflow用户

发布于 2018-07-14 04:28:06

def recursiveSort(sensor_list,n,t): #Recursive Sort
if (n == 0):

    return sensor_list
else:
    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
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51331758

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档