• 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)
  • 相关阅读:
    转《编程之美——微软技术面试心得》勘误表
    第一次 学习使用 智能指针
    test _todel
    (转 todo阅读)Android 官方博客 Android应用程序的内存分析(翻译)
    msdn snmp trap 研究可否 重入 转《Multiple Trap Registrations》
    wpbars在博客园开博客了
    创业失败的10个教训总结
    winform 的一种登录方法。
    快速建立Subversion
    (转)SQL Server 按某一字段分组取最大(小)值所在行的数据
  • 原文地址:https://www.cnblogs.com/tngh/p/9325451.html
Copyright © 2020-2023  润新知