0

私は 2 つのリストを持っています。たとえば、ゲームの各ラウンドの勝者の 1 人としましょう。もう 1 つは勝者の番号とそれに関連付けられた名前です。受賞者の名前を Python でできるだけ簡潔に出力したいと考えています。

現在、私の解決策は非常に冗長です。

winners=[1, 2, 'NONE', 'NONE', 0]
ranking=[('Ron', 3), ('Brian', 4), ('Champ', 2), ('Brick', 0), ('Ed', 5), ('Veronica', 1)]

lastList=[]

for row in winners:
    if row !="NONE":
        for element in ranking:
            if element[1]==row:
                lastList.append(element[0])
    else: lastList.append(row)

print lastList
['Veronica', 'Champ', 'NONE', 'NONE', 'Brick']

1 行の簡潔な if-then ステートメントを試してみましたが、役に立ちませんでした。

lastList=[[element[0] if element[1]==row for element in ranking] if row!="NONE" else row for row in winners] 

私の疑いは、if-then 単一行構文で何か間違ったことをしているということです。

4

1 に答える 1