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)
  • 相关阅读:
    FreeCommander 学习手册
    String详解, String和CharSequence区别, StringBuilder和StringBuffer的区别 (String系列之1)
    StringBuffer 详解 (String系列之3)
    StringBuilder 详解 (String系列之2)
    java io系列26之 RandomAccessFile
    java io系列25之 PrintWriter (字符打印输出流)
    java io系列24之 BufferedWriter(字符缓冲输出流)
    java io系列23之 BufferedReader(字符缓冲输入流)
    java io系列22之 FileReader和FileWriter
    java io系列21之 InputStreamReader和OutputStreamWriter
  • 原文地址:https://www.cnblogs.com/tngh/p/9325451.html
Copyright © 2011-2022 走看看