python - Pythonic 构造 if 语句以更改变量值的方法?
问题描述
正如标题所说,编写以下代码的pythonic方式是什么?
if x == 1:
myvar = "a string"
elif x == 2:
myvar = "another string"
elif x == 3:
myvar = "yet another string"
else:
raise Exception("arg x must be 1, 2 or 3")
执行上述操作似乎有点笨拙,对于更长的示例,更耗时且混乱。
解决方案
您想为此使用字典:
x = 3 # Then try with 4
outcome_dict = {1: "some string", 2: "another string", 3: "yet another string"}
my_var = outcome_dict.get(x)
if my_var is None:
raise Exception("arg x must be 1, 2 or 3")
print(my_var)
如果找不到密钥,该dict.get()
方法将返回。None
在这个例子中,所有的结果都需要手动输入,outcome_dict
但在实践中,很容易为数千个键创建字典:单行代码中的值对,例如字典推导或常规for
循环。
推荐阅读
- android - Android 蓝牙多连接处理套接字
- javascript - 'this' 指针未定义可能是因为它丢失了,但如何?
- javascript - JavaScript 函数在显示输出后一直返回 undefined
- excel - 在桌面上创建 SaveCopyAs 后关闭 Excel 文件
- excel - 创建 VBA 脚本以自动化数据上传和转换
- prerender - applicationHost.xdt in App Service Plan instances
- html - 为什么单击时 Bootstrap DropDownMenu 不起作用?
- html - Avoid extra space in anchor caused by line height - flex layout
- ansible - 加载 YAML 时出现语法错误。\n 发现无法启动任何标记的字符
- javascript - 登录后如何使用python在网络浏览器中打开html文件?