如果能有效地使用“if”、“elif”和“else”也不错。但总的来说,你的问题的答案将取决于个人情况。在

不过,说到这里,一种方法是将您的条件放入dict(正如您在标记中突出显示的那样)。在

以下是几个例子:

作为dict:conditions = {

1: 'One',

2: 'Two',

3: 'Three',

4: 'Four',

5: lambda x: x**2 # Can be substituted with actual functions defined elsewhere.

}

x = 3

if x in conditions.keys():

print(conditions[x])

退货:

^{pr2}$

或者对于函数:x = 5

if x in conditions.keys():

func = conditions[x]

print(func(x))

退货:25

使用类似于switch...case的函数:

为了使其更清楚,并具有类似于switch...case语句的内容,可以执行以下操作:def switch(case):

conditions = {

1: 'One',

2: 'Two',

3: 'Three',

4: 'Four',

5: lambda x: x**2

}

return condition[case] if case in conditions else False

它是这样运行的:>>> print(switch(2))

2

或者对于不存在的项目:>>> print(switch(6))

False

在您的示例中实现:

switch...case函数装饰器(包装器)

为了解决您添加的示例,我们可以执行以下操作:

首先,我们需要一个通用开关/外壳装饰器:def switch_case(switch):

def switcher(func):

def case(case):

return switch[case](case) if case in switch else None

return case

return switcher

然后,我们需要一本关于我们的条件的字典,如您的示例所示:# Define the conditions in a dict.

conditions = {

'd': lambda x: True if 'd' else False, # You can say: True if 'a' or 'b' else False

'c': lambda x: True if 'c' else False

}

现在,我们根据您的条件创建一个装饰开关盒函数:@switch_case(conditions)

def my_conditions(case):

return case

然后我们指定元素,或者从文件、数据库或任何东西读取它们:# Elements to be tested as string.

# It can be any flattened (not nested) iterable (str, tuple, list, numpy.array, etc.)

myDict = {'a': ['b', 'c'], 'b': ['c', 'd']}

elements = sum(myDict.values(), []) # Returns a flattened lists of values.

根据条件计算元素(生成器对象)。在verdicts = map(my_conditions, elements)

将元素与相应的计算结果(生成器对象)匹配。在status = zip(elements, verdicts)

现在我们可以积极地调节输出(丢弃Nonevlue)并创建一个dict,其中键是元素,值是它们的条件状态。在passed = {key+'flag': val for key, val in status if val is not None}

print(passed)

# output: {'cflag': True, 'dflag': True}

作为变量添加到命名空间

此时,您可以按原样使用dict;但是,如果您坚持要将dict添加到名称空间中,下面是方法:# Rename values and add them to the name space.

locals().update(passed)

试验

最后,让我们测试并确保这些值存在于本地命名空间中(请注意,我们之前没有实现这些名称中的任何一个)。因此,如果条件返回序列中特定字符的True值,则会创建一个变量:>>> print(dflag) # We had 'd' in `myDict` values.

True

在另一个had中,如果条件返回None,则命名空间中没有值。在>>> print(aflag) # We didn't have 'a' in `myDict` values.

---------------------------------------------------------------------------

NameError Traceback (most recent call last)

in ()

24

---> 25 print(aflag)

NameError: name 'aflag' is not defined

注意:在现有结构下,如果条件返回False,则在命名空间中创建一个变量,并为其赋值False。在

希望这有帮助。在

pythonifelse简化_简化“if…elif..else”条件相关推荐

  1. 微信小程序在url简化_简化对Web应用程序的数据分析

    微信小程序在url简化 数据(Analytics / ML)到应用程序-零痛苦 (Data (Analytics/ML) to App - with zero pain) We all want to ...

  2. get set方法简化_简化开放科学的4种方法

    get set方法简化 具有讽刺意味的是,谈到开放您的工作时,有一个秘密. 这就是:在开放式科学,开放源代码软件或任何其他开放社区中开放都是很难的. 有时,它可能比被关闭更难. 为了吸引更多的人参与这 ...

  3. rdlc报表 矩形高固定_固定资产管理系统_简化资产管理流程

    随着企业经营范围的不断拓展,企业每年都投入大量费用来购置各种资产,但随时间推移,企业在资产管理中往往会出现下列情况: 1.不清楚资产的使用状态.位置.使用人,资产利用效率低,重复购置现象严重. 2.资 ...

  4. 二分法算法复杂度简化_让我们简化算法的复杂性!

    二分法算法复杂度简化 by Shruti Tanwar 通过Shruti Tanwar 让我们简化算法的复杂性! (Let's simplify algorithm complexities!) It ...

  5. python代码该怎么简化_如何简化这个python代码(从书中分配)?

    我在学习 "Python for Everybody" 这本书是由查尔斯R.Severance和我写的,从第7章开始,我有一个问题要问练习2. 任务是通过 mbox-short.t ...

  6. java 简化判断_简化Java内存分析

    java 简化判断 作为一名典型的Java开发人员,除了遵循关闭连接,流等典型的最佳实践外,我从未监视过应用程序的内存使用情况.最近,我们在JBoss服务器中遇到了一些问题,不得不深入研究内存管理Ja ...

  7. 微信小程序物联网应用_简化物联网应用程序入门的提示

    微信小程序物联网应用 by Sofia Coppol 索非亚·科普波尔(Sofia Coppol) 简化物联网应用程序入门的提示 (Tips for a Smoother Internet of Th ...

  8. python0表示剪刀_简化Python代码(石头、纸张、剪刀)

    我是一个完全的python新手,这是我关于stackoverflow的第一个问题,请耐心等待:) 所以为了得到一些过度,我试着用Python编写我自己的石头.布.剪刀游戏.然而,我的代码相对其他岩石, ...

  9. docker适合初学者吗_简化了Docker:面向绝对初学者的动手指南

    docker适合初学者吗 by Shahzan 由Shahzan Whether you are planning to start your career in DevOps, or you are ...

最新文章

  1. wget: command not found 解决方案
  2. JavaScript-4.2函数,变量作用域---ShinePans
  3. UnicodeEncodeError: 'UCS-2' codec can't encode characters in position 8-8: Non-BMP character not sup
  4. java.lang.NumberFormatException: multiple points错误问题
  5. 【gRPC】ProtoBuf 语言快速学习指南
  6. Android-JNI编程-图文解析
  7. git学习(七)新建远程仓库-Gitee为例
  8. [javascript] 完全开源,开心分享 HTML5 Canvas 在线图片处理《imageMagic》(single page app)开发详解[1]...
  9. c语言 字符串转整型
  10. redis实战【西橙先生】
  11. java宠物商店_Java如何实现宠物商店管理 Java实现宠物商店管理代码示例
  12. 在阿里云服务器上安装常用应用
  13. oracle导入blob出错,oracle导出blob,clob出错的问题
  14. HoloLens2语音指令实现
  15. 【quill-editor】富文本编辑器对图片的放大缩小拖拽的实现
  16. 各类暴力事件频发,究竟是为何?
  17. 四人小组项目(对项目进行的修改与重写)
  18. ajax请求生命周期方法
  19. 大家都来学 Java(一)快乐入门
  20. 走进Spring Cloud之二 eureka注册中心(Greenwich版本)

热门文章

  1. python框架pika的基本使用
  2. 身体检查 生化全套 血常规 微量元素
  3. react+redux实战——redux到底是个啥子?
  4. UVA - 10382- Watering Grass
  5. java的reveserOder_reverse是什么意思_reverse的用法
  6. Liferay URL
  7. 苹果要偷看你手机电脑上的照片了
  8. 全面了解三极管——三极管基本参数总结
  9. Android结合源码分析Power按键处理流程
  10. 嵌入式软件单元测试/集成测试工具-WINAMS