python之三元表達式、列表生成式、字典表達式、生成器表達式


1.三元表達式

    格式為:條件成立時的返回值 if 條件 else 條件不成立時的返回值

                

        總結:多行判斷,一行代碼解決。就是一條if判斷的簡寫代碼語法

2.列表生成式    方括號【】

           快速生成一個列表,也是一條簡寫代碼語法

            格式: l=[item**2 for item in range(1,11)]

                        print (l)

                     names=['alex,'wxx','lxx']

                    names=[name+'sb' for name in names]     #循環列表並在每個字符串后加sb

                    print (names)

                    # names=[name+'SB' for name in names if name != 'egon']   #還可以結合if判斷
                    # print(names)

3.字典表達式:  花括號{}

                s1='hello'

                l1=[1,2]

                    res=zip(s1,l1)    #res迭代器對象          zip把s1和l11 對應壓縮  (拉鏈式)  配對取出對應的值 多出的就不用了

                    print(list(res))               列表都是全部取出   ()      res迭代器不運行,next才執行代碼,next一次取一次

                

                    # keys=['name','age','sex']
                    # values=['egon',18,'male']

                    # d={k:v for k,v in zip(keys,values)}    #字典的壓縮壓

                    # print(d)

                    

                    通過迭代器對象取值,可以起到節約內存的作用

4.生成器表達:小括號()

                    

        

                    g=(i for i in range(10))    “”定義為迭代器對象不執行代碼,直到next才執行一次代碼

                            pirnt (g)         #定義為迭代器對象(內存地址),不占內存,取值的時候在一個個取出

                print(next(g))   

                pirnt(next(g))

 

                max   #可迭代對象  循環next取值比較大小

               # nums=[11,22,33,44,55]

                # print(max(nums))            #循環取值比較大小

                # with open('a.txt',encoding='utf-8') as f:
                    #     nums=(len(line) for line in f)         定義為生成器 就是迭代器不執行代碼,next才執行一次代碼,取一次值就少一次

                    #     print(max(nums))                      如果定義為nums=[len(line) for line in f]就不會報錯 因為列表會把所有的值列出了

        # print(max(nums))            
        # print(max(nums)   在運行的時候就會報錯,因為文件已經關閉


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM