在Python中简洁地组合if语句和列表上的iterables

2024-05-29 10:39:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两张名单——比如说每一轮比赛的赢家之一,一张是赢家的号码和相关的名字。我希望用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单行语法中做了一些错误的事情。你知道吗


Tags: innoneforifelement名字rowbrick

热门问题