Pyhton入门 笔记 第五天 Pythonic与Python杂记

一,Python  字典映射,代替  switch函数

Python中,没有switch,在别的语言中为spa

switch(day)
{
    case 0:
    dayName="Sunday";
    break;
    case 1:
    dayName="Monday";
    break;
    case 2:
    dayName="Tuesday";
    break;
    .......
    default :
    dayName="Unknown"
}

上例,在Python中,用字典映射code

1)当day的值存在字典的key中时blog

day=2
switcher={
    0:'Sunday',
    1:'Monday',
    2:'Tuesday',
}

day_name=swticher[day]
print(day_name)

2)当day的值不存在字典switcher中,并且要有默认真时。get

day=6
switcher={
    0:'Sunday',
    1:'Monday',
    2:'Tuesday',
}

day_name=swticher.get(day,unknown)  #使用get()方法,当值超出时可获得默认值unknown
print(day_name)

3)当字典中的值为代码块的时候it

day=5
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)()  #直接返回函数
print(day_name)

 二推导式class

1)map

#列表推导式
#集合推导式
#map filter
#set 也能够被推导
#dict,也能够被推导
a=[1,2,3,4,5,6,7,8,9] #要求,计算a中各项的平方
b=[i*i for i in a]   #i*i也能够写为i**2,因此,i的3次方,也能够写为i**3
print(b)

2)方法

#列表推导式
#集合推导式
#map filter
#set 也能够被推导
#dict,也能够被推导
a=[1,2,3,4,5,6,7,8,9] #要求,计算a大于等于中各项的平方
b=[i*i for i in a if i>=5]   #注,推导不至能够用[],也能够用{},若是b={i*i for i in a if i>=5} 但获得的类型就不一样了。

print(b)

 3)字典的推导filter

students={
    '小晨':15,
    '浸染':45,
    '当当':12
}
b=[key for key,value in students.items()]  #由于字典是key,和value两个值,因此也要两个参数(必须的) 同时要使用函数items()
print(b)

 4)字典的推导,让字典的key与value相反输出

students={
    '小晨':15,
    '浸染':45,
    '当当':12
}
b={value:key for key,value in students.items()}
print(b)
相关文章
相关标签/搜索