if / else语句vs字典

时间:2017-04-15 23:22:42

标签: python dictionary

如果我使用字典而不是else语句编写语句,那会是怎么回事?例如,说我有

def determineRank(years):
     if years == 1:
         return "Freshman"
     elif years == 2:
         return "Sophmore"
     elif years == 3:
         return "Junior"
     else:
         return "Senior"

如果我要使用字典重写它,那就是

rank = {"Freshman":1, "Sophmore":2, "Junior":3, "Senior", ???}

我会为其他人写几个号码?

3 个答案:

答案 0 :(得分:5)

使用Pointer.nativeValue(Native.getComponentPointer(jFrame))方法,默认值为第二个参数:

.get

答案 1 :(得分:3)

您可以使用dictObject.get(key, defaultValue)

所以,相当于你的功能将是:

rank = {1: "Freshman", 2: "Sophmore", 3:"Junior"}.get(year, "Senior");

请注意,字典的键/值对是相反的。

答案 2 :(得分:1)

只是为了扩展已在此处发布的内容,使用dict.get时,如果使用密钥,则不会引发KeyError。 “高级”,尚未出现在字典中。

您也可以这样做,利用三元运算符检查某一年是否已成为rank中的关键:

rank = {1: "Freshman", 2: "Sophomore", 3: "Junior"}
year = 4
year_rank = rank[year] if year in rank else "Senior"

year_rank将为“高级”

我认为dict.get方法稍微好一些。