用字典映射代替switch case语句

字典代替switch

switch(day)
{case 0:dayName="Sunday";break;case 1:dayName="Monday";break;case 2:dayName="Tuesday";break;default:dayName="Unknwon"
}
day=0
switcher={0:'Sunday',1:'Monday',2:'Tuesday'}# get方法检查字典的键,若不存在调用第二个参数
day_name=switcher.get(day,'Unknown')
print(day_name)

如果case语句中下不是简单的语句,而是函数

day=0
def Get_Sunday():return "Sunday"
def Get_Monday():return "Monday"
def Get_Tuesday():return "Tuesday"
def Get_default():return "Unknown"
switcher={0:Get_Sunday,1:Get_Monday,2:Get_Tuesday}
day_name=switcher.get(day,Get_default)()  # 当调用的值为方法时,在get方法后面加(),并且使第二个参数也为方法
print(day_name)
Sunday

当调用的值为方法时,在get方法后面加(),并且使第二个参数也为方法

列表推导式

将a=[1,2,3,4,5]列表中的每个元素平方后生成新的列表
法一:map函数

a=[1,2,3,4,5]
result=map(lambda i :i*i,a)
print(list(result))

法二:列表推导式

  • 建立一个新列表接收
  • 新列表中用for循环遍历源列表的值
  • for循环前添加更改的条件,中间用空格隔开即可
a=[1,2,3,4,5]
b=[i*i for i in a]
print(b)
[1, 4, 9, 16, 25]

i^2 等价于 i2
i^3 等价于 i
3

使用条件: 对源列表中有条件的筛选元素进行更改
对大于3的元素进行平方处理
列表推导式:在for循环后添加if条件即可

a=[1,2,3,4,5]
b=[i*i for i in a if i>3]
print(b)
[16,25]

map方法:map与filter过滤结合

集合,字典,元组都可以被推导,只需把[]根据新的集合,字典,元组更改

字典列表推导式

需要通过for循环遍历字典

students={'喜小乐':18,'石敢当':20,'横小五':15}b=[key for key,values in students.items()]   # 遍历字典需要两个变量
print(b)  # 提取出字典中的键到列表中

若要得到一个元组,只能返回一种key或value,得到的是一个对象

只能通过for循环遍历打印得到全部的键或值

students={'喜小乐':18,'石敢当':20,'横小五':15}b=(key for key,values in students.items())   # 得到一个元组for i in b:   # for循环得到全部键print(i)
喜小乐
石敢当
横小五

None

None的值和类型
不等于 空字符串
不等于 空列表
不等于 False

Python中None本身是一个对象

判空操作

if not a:a=Nonea=' 'a=[]a=False

【Python】杂记相关推荐

  1. python 杂记(二)

    字符串 字节字符串 借助chr()和ord进行转化 借助struct 模块进行复杂的转化 Unicode字符串 转化为字节编码 转化为UTF-8编码 字符串有两种格式,一个是字节字符串,一个是Unic ...

  2. python杂记(一)

    基础知识 with 语句 with关键字可以用来启动一个新的代码块,就像try一样,但目的却是截然不同的.通过使用with块,你将定义一个特定的上下文,并在该上下文中执行代码块的内容.然而美妙之处在于 ...

  3. python切片操作的几种格式_【Python杂记】第四篇:序列切片

    使用python处理问题的过程中,经常会遇到从某个序列中抽取部分值的情况."切片"操作正是专门用于实现这一目的的方法. 实际上,可以通过单次或多次切片操作实现任意目标值切取.切片操 ...

  4. Python——杂记

    python 最近出错总结: 1.而for..in ..中不要用else if  x in y:     print  else:     print 2. def fibs(num): ...    ...

  5. [转载] Python杂记之 list.clear()方法,清空列表

    参考链接: Python list clear() list.clear()方法 作用语法例子结果 作用 clear() 函数用于清空列表,类似于 del a[:] 语法 list.clear() 例 ...

  6. 《Python开发 - Python杂记》Python与C/C++混合编程

    Python是脚本语言,可以做的事情非常的多,本文将要讲解使用Python来调用C/C+库. 关于C/C++库的创建请看笔者以前的文章,这里只给出Window下的创建过程. 静态库和动态库(Windo ...

  7. python杂记-逆波兰表达式求解

    逆波兰表达式求解一般是基于堆栈的,求解过程是:操作数入栈,遇到操作符时,操作数出栈,求值,将结果入栈:运行一遍后,栈顶就是表达式的值.因此逆波兰表达式的求值使用堆栈结构很容易实现,并且能很快求值. 比 ...

  8. 【Python杂记】:课程表生成日历程序(生成.ics文件可直接导入日历)

    项目场景: 临近开学,大家也基本收到了自己的课表,但是一想想天天还得看上什么课,还分哪些周上课,有些课从第一周上到第八周就结课了,有些要上到期末,于是像我这么懒的人,自然是要手机来提醒我的.于是这篇文 ...

  9. python杂记-RSA加解密实现(4)-加解密消息及文件

    3.消息m分段与非负整数n之间的互相转换 #!/usr/bin/env python3 # -*- coding: utf-8 -*- #2-10-3-6.py import base64 impor ...

  10. python杂记-读取png图像文件头数据

    #!/usr/bin/env python3 # -*- coding: utf-8 -*- #2-10-2-2.py fileName="2-10-2-1.png" print( ...

最新文章

  1. 4GL之Non-SCROLLING CURSOR
  2. 【Ionic+AngularJS 开发】之『个人日常管理』App(二)
  3. 转转服务器无响应,【转】服务器无响应(或者本地MySQL服务器的套接字没有正确配置)的问题...
  4. 【Paper】2018_Group Consensus for Discrete-Time Heterogeneous Multiagent Systems with Input and Commun
  5. 【PAT】A1106 Lowest Price in Supply Chain
  6. sending data mysql slow Mysql查询非常慢的可能原因
  7. linux系统中删除一次性任务流程,Linux系统中的计划任务
  8. SQLServer 2012下载及安装教程
  9. https://blog.csdn.net/sxf359/article/details/71082404
  10. 细分领域:偏门的色流玩法+简单的色流变现套路
  11. Flask--网页微信登陆示例
  12. hdu 4966 GGS-DDU 最小树形图
  13. MISC:压缩包取证(zip爆破、明文攻击、伪加密、CRC32碰撞)
  14. Xftp的下载和安装(超详细)
  15. 学角色建模好还是场景建模?5个角度分析,教你选择最合适的
  16. ORACLE 考试的流程
  17. 文件夹访问被拒绝 你需要权限来执行此操作,你需要来自SYSTEM的权限才能对此文件夹进行更改
  18. 逗比学CTF.day8
  19. 实验吧-隐写-欢迎来到地狱(Word文档文字隐藏、Rabbit加密)
  20. JAXB根据带继承关系的类生成soap请求的XML报文(互转)

热门文章

  1. 【外挂逆向】《某涯明月刀》BUFF及技能预判
  2. lol网通区服务器的位置,LOL英雄联盟转区系统地址在哪?
  3. 【Shell】shell脚本中的空格
  4. php 405错误怎样重现,phpmyadmin出现405错误怎么办?
  5. C语言三个点“...“符号含义之数组批量赋相同值
  6. QN902X在KEIL中使用定时器中断流程记录
  7. 小米/红米 手机内部存储空间其它文件怎么删除内部存储空间不足
  8. 用计算机弹出微微,电脑显示器轻微闪烁怎么办
  9. fluent二维叶型仿真_CFX案例 | 混合器流场仿真——热和流动
  10. python 分布式 调度 管理_分布式云调度处理系统