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,              

おすすめ

転載: www.cnblogs.com/chmily/p/11348696.html