我有一个需要冒泡排序的项目列表。冒泡排序标准是如果 item在大多数结果集中的j
排名高于 item ,则将 item与 item in交换。除了一个小问题,我想出了一个非常简单的冒泡排序。当项目未出现在其中一个结果集中时,我收到一个关键错误。我需要输入一个值来弥补这一点,否则我的循环会因大量 if 语句而变得非常复杂。如果我可以为字典中不存在的任何值分配一个标记值,例如 20,那么我的循环将是完美的。谁能帮我吗?i
j
i
FullList
FullList
FullList = [B,C,A,D,H,E,F,G]
Results1 = {'A':1,'B':2,'C':3,'D':4,'E':5}
Results2 = {'B':1,'D':2,'G':3,'F':4,'E':5}
Results3 = {'C':1,'D':2,'B':3,'A':4,'H':5}
Pseudo Code:
switch = True
while(switch):
switch = False
for i in range(len(FullList)-1):
if FullList[i+1]<FullList[i] in Results1 & 2:
FullList[i],FullList[i+1] = FullList[i+1],FullList[i]
switch = True
elif FullList[i+1]<FullList[i] in Results1 & 3:
FullList[i],FullList[i+1] = FullList[i+1],FullList[i]
switch = True
elif FullList[i+1]<FullList[i] in Results2 & 3:
FullList[i],FullList[i+1] = FullList[i+1],FullList[i]
switch = True
Key-Error: 'A' not in 'Results2'