小编hei*_*iRa的帖子

课堂内的Pythonic开关

我试图在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)

这种字典大小写逻辑是否仅适用于类定义之外,还是我错过了一些额外的代码?看起来在函数调用中评估所有字典键值对.

python dictionary switch-statement

4
推荐指数
1
解决办法
748
查看次数

更多pythonic方式更新字典中的现有值

让我们假设我有一个字典_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的方式这样做?(最好不要导入额外的模块)

python dictionary

2
推荐指数
1
解决办法
85
查看次数

标签 统计

dictionary ×2

python ×2

switch-statement ×1