我试图在python中构建一个开关逻辑.
基于Python中的switch语句的替换?我构建以下代码:
def func(string):
print(string)
class Switch:
def __init__(self):
pass
def first_switch(self, case):
return {
'1': func('I am case 1'),
'2': func('I am case 2'),
'3': func('I am case 3'),
}.get(case, func('default'))
switch = Switch()
switch.first_switch('2')
Run Code Online (Sandbox Code Playgroud)
这会给我输出:
I am case 1
I am case 2
I am case 3
default
Run Code Online (Sandbox Code Playgroud)
我期待输出
I am case 2
Run Code Online (Sandbox Code Playgroud)
这种字典大小写逻辑是否仅适用于类定义之外,还是我错过了一些额外的代码?看起来在函数调用中评估所有字典键值对.
让我们假设我有一个字典_dict和一个变量n.
_dict = {'a': 9, 'b': 7, 'c': 'someValue'}
n = 8
Run Code Online (Sandbox Code Playgroud)
我想只更新一个条目,例如,{'b': 7}只有当值n大于实际值时b.到目前为止我得到的解决方案是
_dict.update({'b': n for key, value in _dict.items() if key == 'b' and n > value})
Run Code Online (Sandbox Code Playgroud)
这提供了期望的结果{'a': 9, 'b': 8, 'c': 'someValue'}.所以现在我的问题是:是否有更短,更pythonic的方式这样做?(最好不要导入额外的模块)