1

バブルソートが必要なアイテムのリストがあります。バブルソートの基準は、アイテムjが結果セットの大部分でアイテムよりも上位にランク付けされている場合、アイテムをのアイテムとi交換することです。私は、1つの小さな問題を除いて、非常に単純なバブルソートを理解しています。アイテムが結果セットの1つに表示されない場合、キーエラーが発生します。それを補うために値を入力する必要があります。そうしないと、ループが非常に複雑になり、多数のifステートメントが発生します。ディクショナリに存在しない値に20などのトークン値を割り当てることができれば、ループは完璧になります。誰かが私を助けることができますか?jiFullListFullList

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'    
4

2 に答える 2

1

あなたが何をしようとしているのか正確にはわかりませんが、あなたが必要としているようです、あなたはここget(key[, default])でこれの詳細をチェックすることができます

あなたの場合、Results2.get('A', 20)あなたに20を与えます

于 2012-07-20T22:33:27.020 に答える
1

ランクをフェッチするときにdict のgetメソッドを使用すると、キーが存在しない場合のデフォルト値を指定できます。

于 2012-07-20T22:32:26.713 に答える