我有两个列表——假设每轮比赛的获胜者之一,一个是获胜者的号码和相关名称。我希望在 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']
我尝试了一个单行简洁的 if-then 语句无济于事:
lastList=[[element[0] if element[1]==row for element in ranking] if row!="NONE" else row for row in winners]
我怀疑我在 if-then 单行语法中做错了什么。