zoukankan      html  css  js  c++  java
  • 2019.8.13学习内容及笔记

    小结

    三元表达式

    dog_name = 'crazy_dog'
    if dog_name =='crazy_dog':
        print('舔狗')
     else:
        print('溜了')
    

    三元表达式/列表推导式/字典生成式,都只是让你的代码更少了,但是逻辑没有变化

    print('舔狗') if dog_name == 'crazy-dog' else print('溜了')
    

    三元表达式只支持双分支结构

    # 列表推到式                                                           
    # lt = [1,2,3,4,]                                                 
                                                                      
    # lt = []                                                         
    # for i in range(10):                                             
    #     lt.append(i)                                                
    # print(lt)                                                       
    # lt.append(i**2)                                                 
    # print(lt)                                                       
    # dic = {'a':1, 'b':2}                                            
    #                                                                 
    # lt = [(k,v) for (k,v) in dic.items()]                           
    # print(lt)                                                       
                                                                      
    # dic = {'a': 1, 'b': 2}                                          
    # lt = [(k,v) for k,v in dic.items()]                             
    # print(lt)   #[('a', 1), ('b', 2)]                               
                                                                      
    # 字典生成式                                                           
    # dict = {'a': 1, 'b': 2}                                         
    # dict1 = {k * 2: v ** 2 for k, v in dict.items()}                
    # print(dict1)  #  {'aa': 1, 'bb': 4}                             
                                                                      
    # 字典生成式一般与zip(拉链函数--》列表里面包了元组)连用                                  
    # z = zip(['a','b','c','d'],[1,2,3,4])  # zip压缩方法,解释器内置方法         
    # for k,v in z:                                                   
    #     print(k,v)     # a 1                                        
     # 解包赋值         # b 2                                             
                       # c 3                                          
                       # d 4                                          
    # dic = {k: v** 2 for k, v in zip(['a','b','c','d'],[1,2,3,4])}   
    # print(dic)  # {'a': 1, 'b': 4, 'c': 9, 'd': 16}                 
                                                                      
    # 生成器:自定义迭代器,生成器就是迭代器(自己造出来的)                                     
     # 关键字 yield                                                      
    # 函数里面加 yield 就表示这是一个迭代器                                          
                                                                      
    # 迭代器对象:具有__iter__和__next__的方法的对象叫做迭代器对象                          
    # def func():                                                     
    #     return 123                                                  
    # f =func()                                                       
    # print(f)  #  123                                                
                                                                      
    # def func():                                                     
    #     yield 123                                                   
    #     yield 456                                                   
    # f = func()                                                      
    # print(f) # <generator object func at 0x00000000028F9200>        
    # f_iter = f.__iter__()                                           
    # print(f_iter.__next__()) # 123                                  
    # print(f_iter.__next__()) # 456                                  
                                                                      
    # 牢记:yield 的三个特性                                                  
    # 1. yield 可以把函数变成生成器(自定制的迭代对象,具有__iter__和__next__的方法)            
    # 2. yield 可以停止函数,在下一次next时再次运行yield下面的代码                         
    # 3. 有n个yield生成器就有n个元素,就可以next n次,在第n+1次时会报错                      
                                                                      
    # return 特性                                                       
    # 1.有返回值                                                          
    # 2.终止函数                                                          
                                                                      
    # def func():                                                     
    #     yield [1,1,2] yield会让函数func()变成生成器 ,因此具有__iter__的方法         
    #     print(789)  yield 会停止函数,当运行下一次next才会继续运行下面的代码               
    #     yield 123   一个yield只能对应一个next                               
    #     print(111)                                                  
    # g = func()                                                      
    # for i in g:                                                     
        # print(i) [1, 1, 2]                                          
        #           789                                               
        #           123                                               
        #           111                                               
                                                                      
    # 用生成器自定制一个range方法                                                
    # 思路:1.生成一个可迭代对象--》 我要把range函数变成一个可迭代对象(迭代器对象)                    
    #      2. 丢一个 10 进去,然后通过for循环的迭代next会丢出0-9的数字                     
    # def range(x):                                                   
    #     count = 0                                                   
    #     while count < x:                                            
    #         yield count                                             
    #         count += 1                                              
    # f = range(10)                                                   
    # print(f.__next__())                                             
    # print(f.__next__())                                             
    # print(f.__next__())                                             
    # for i in f:                                                     
    #     print(i)                                                    
                                                                      
                                                                      
    # for i in range(1,10):                                           
    #     print(i)                                                    
                                                                      
    # 生成器表达式                                                          
    # 把列表推导式的[]换成()                                                   
    # lt = [i for i in range(10)]                                     
    # print(lt) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]                      
    #                                                                 
    # g = (i for i in range(10))                                      
    # print(g)#<generator object <genexpr> at 0x00000000028F9200>     
    # print(g.__next__())  # 0                                        
    # print(g.__next__())  # 1                                        
                                                                      
    # 列表和元组的区别                                                        
    # 列表就是一筐鸡蛋;元组是一只老母鸡(节省空间) 
    
    
    # 匿名函数                                                       
    # 匿名函数--》就是没有名字的函数                                           
    # 匿名函数需要关键字 lambda                                           
    # f = lambda x: x+1   # (x 是参数), x+1 是代码块                    
    # res = f(2)                                                 
    # print(res)  # 3                                            
                                                                 
    # 匿名函数一般不单独使用,和filter():过滤,筛选/map():映射/sorted()/列表的sort():排序;
    # salary_dict = {'nick': 3000,                               
    #     'jason': 100000,                                       
    #     'tank': 5000,                                          
    #     'sean': 2000}                                          
    # salary_list = list(salary_dict.items())                    
    # print(salary_list) #[('nick', 3000), ('jason', 100000), ('t
    # def func(i):  # i=('sean', 2000), ('nick', 3000),('tank', 5
    #     return i[1] # 2000,3000,5000,100000                    
    #                                                            
    # salary_list.sort(key = lambda i :i[0])  # 内置方法是对原值排序       
    # print(salary_list)  # [('jason', 100000), ('nick', 3000), (
    #                                                            
    # salary_list.sort(key=lambda i: i[1])                       
    # print(salary_list) #[('sean', 2000), ('nick', 3000), ('tank
    #                                                            
    # new_salary_list = sorted(salary_list,key=lambda i: i[1])   
    # print(new_salary_list)  # [('sean', 2000), ('nick', 3000), 
                                                                 
    # salary_dict = {                                            
    #     'nick': 3000,                                          
    #     'jason': 100000,                                       
    #     'tank': 5000,                                          
    #     'sean': 2000                                           
    # }                                                          
    # salary_list = list(salary_dict.items())                    
    # print(salary_list) #[('nick', 3000), ('jason', 100000), ('t
    #                                                            
    # new_salary_list = max(salary_list,key=lambda i: i[1])      
    # print(new_salary_list) # ('jason', 100000) 取出最大值           
    #                                                            
    # new_salary_list2 = min(salary_list,key=lambda i: i[1])     
    # print(new_salary_list2)  # ('sean', 2000)  取出最小值           
                                                                 
    # salary_dict = {                                            
    #     'nick': 3000,                                          
    #     'jason': 100000,                                       
    #     'tank': 5000,                                          
    #     'sean': 2000                                           
    # }                                                          
    # salary_list = list(salary_dict.items())                    
    # print(salary_list) # [('nick', 3000), ('jason', 100000), ('
    #                                                            
    # new_list = list(filter(lambda i: i[1] < 5000,salary_list)) 
    # print(new_list)                                            
    # new_list = list(map(lambda i: i[1] + 2000,salary_list) )   
    # print(new_list)  # [5000, 102000, 7000, 4000]              
    # print(list(map(lambda i: i[1] + 2000,salary_list))) #[5000,              
    
  • 相关阅读:
    php method_exists( $object , string $method_name )
    php伪类型 (mixed)
    6.6-2-数组与数据结构(用数组及其函数实现堆栈等数据结构)
    6.6-1-php数组相关(2)
    2017.6.5-2-php数组相关(1)
    2017.6.5-1-php函数应用及流程控制
    CodePage
    bat批处理教程
    pip安装及源
    CentOS安装Python3
  • 原文地址:https://www.cnblogs.com/chmily/p/11348696.html
Copyright © 2011-2022 走看看