Python 如何处理;否则";转换“时”时的第条;如果..elif..else“;语句转换为字典查找?
我正在尝试将python中的“if-else”语句转换为字典 我试着把它转换成字典,但如何处理最后一个else子句Python 如何处理;否则";转换“时”时的第条;如果..elif..else“;语句转换为字典查找?,python,if-statement,technical-debt,Python,If Statement,Technical Debt,我正在尝试将python中的“if-else”语句转换为字典 我试着把它转换成字典,但如何处理最后一个else子句 val=3 if val==1: print "a" elif val==2: print "b" elif val==3: print "c" elif val==4: print "d" else: print "value not found:" print "===========Converted if else into dictionary =
val=3
if val==1:
print "a"
elif val==2:
print "b"
elif val==3:
print "c"
elif val==4:
print "d"
else:
print "value not found:"
print "===========Converted if else into dictionary ==================="
DATA_SOURCE = {1:"a",2:"b",3:"c",4:"d"}
print DATA_SOURCE[val]
我已创建此代码作为替换:
if not DATA_SOURCE.has_key(val):
print "value not found:"
else:
print DATA_SOURCE[val]
它是等效的吗 您可以使用
dict.get
方法:
print DATA_SOURCE.get(val, "value not found")
如果val
不是键,则返回“未找到值”
,而不影响字典
如有疑问,请一如既往地使用帮助:
>>> help(dict)
我想你正在寻找
val = 3
dct = {1:"a", 2:"b", 3:"c", 4:"d"}
if dct.get(val) == None: print "Value Not Found"
@加热器887可用于减少编码次数lines@Thecheater887我想你会发现这个问题和答案很有趣。c:@PeterWood是一个学习的地方,我刚刚学会了对一个直言不讳的人直言不讳,伤害比我记忆中要大得多。桥梁修好了。((现在回到主题…)@VigneshKalai,这取决于看到它的人的眼睛。有些人可能会把它看作是金子,而其他人,比如我,则把它看作是一种攻击。。我想是时候把透视图升级到v0.0.2了:P@Thecheater887我希望你留下来。我没想到别人会认为我直言不讳。关于从代码中删除条件的文章确实帮助了我对设计的思考。我刚才用一个相关的SO链接回答了你的问题。看,从伟大的世界。和平。
dict.get
的一个好处是,你不必进行这种比较。@juanchopanza我明白为什么我现在被否决了。。我以前没有这样做,因为当我在解释器或cmd.interest中尝试它时失败了。哪一个失败了?另外,哪个python版本?DATA\u SOURCE.get()
带有AttributeError:“set”对象没有属性“get”
和python 2.7.10。但是DATA\u SOURCE
是一个dict
,而不是set
。