【Python】杂记
用字典映射代替switch case语句
字典代替switch1
2
3
4
5
6
7
8
9
10
11
12
13
14switch(day)
{
case 0:
dayName="Sunday";
break;
case 1:
dayName="Monday";
break;
case 2:
dayName="Tuesday";
break;
default:
dayName="Unknwon"
}
1 | day=0 |
如果case语句中下不是简单的语句,而是函数1
2
3
4
5
6
7
8
9
10
11
12day=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函数1
2
3a=[1,2,3,4,5]
result=map(lambda i :i*i,a)
print(list(result))
法二:列表推导式
- 建立一个新列表接收
- 新列表中用for循环遍历源列表的值
- for循环前添加更改的条件,中间用空格隔开即可
1 | a=[1,2,3,4,5] |
[1, 4, 9, 16, 25]
i^2 等价于 i2
i^3 等价于 i3
使用条件: 对源列表中有条件的筛选元素进行更改
对大于3的元素进行平方处理
列表推导式:在for循环后添加if条件即可1
2
3a=[1,2,3,4,5]
b=[i*i for i in a if i>3]
print(b)
[16,25]
map方法:map与filter过滤结合
集合,字典,元组都可以被推导,只需把[]根据新的集合,字典,元组更改
字典列表推导式
需要通过for循环遍历字典1
2
3
4students={'喜小乐':18,'石敢当':20,'横小五':15}
b=[key for key,values in students.items()] # 遍历字典需要两个变量
print(b) # 提取出字典中的键到列表中
若要得到一个元组,只能返回一种key或value,得到的是一个对象
只能通过for循环遍历打印得到全部的键或值1
2
3
4
5
6students={'喜小乐':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=None
a=' '
a=[]
a=False