zoukankan      html  css  js  c++  java
  • Pyhton入门 笔记 第五天 Pythonic与Python杂记

    一,Python  字典映射,代替  switch

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

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

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

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

    day=2
    switcher={
        0:'Sunday',
        1:'Monday',
        2:'Tuesday',
    }
    
    day_name=swticher[day]
    print(day_name)

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

    day=6
    switcher={
        0:'Sunday',
        1:'Monday',
        2:'Tuesday',
    }
    
    day_name=swticher.get(day,unknown)  #使用get()方法,当值超出时可得到默认值unknown
    print(day_name)

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

    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)

     二推导式

    1)

    #列表推导式
    #集合推导式
    #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)字典的推导

    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)
  • 相关阅读:
    「BZOJ 1297」「SCOI 2009」迷路「矩阵乘法」
    「BZOJ 1831」「AHOI 2008」逆序对「贪心」
    「BZOJ 1791」「IOI 2008」Island「基环树」
    WC2019 冬眠记
    「ZOJ 1354」Extended Lights Out「高斯消元」
    「BZOJ 3270」博物馆「高斯消元」
    「学习笔记」泰勒级数
    获取iPhone的UDID
    面试题
    Java的post(HTTPS)请求-----接口测试
  • 原文地址:https://www.cnblogs.com/tngh/p/9325451.html
Copyright © 2011-2022 走看看