python學習-day10 推導式

視頻鏈接:https://www.bilibili.com/video/BV1SE411N7Hi?p=64

定義:https://guobaoyuan.gitee.io/new_book/Python/12-2%20%E6%8E%A8%E5%AF%BC%E5%BC%8F.html

以下內容僅供個人學習使用,侵刪

#!/usr/bin/env python 
# -*- coding:utf-8 -*-

'''
推導式:編寫一些有規律性的
列表推導式、字典推導式、集合推導式
生成器表達式

'''
lst=[]
for i in range(1,11):
    lst.append(i)
print (lst)

#推導式,代碼從右向左走
#1.普通循環模式
print([i for i in range(1,11)])
#[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

#2.篩選模式
#結構一:[結果 for循環 條件]
print([i for i in range(1,11) if i >5])
#[6, 7, 8, 9, 10]
#執行順序
#i for i in range(1,11) if i >5
#分2部分,從右往左走,for i in range(1,11) if i >5和i
#for i in range(1,11) if i >5 部分,從左往右走


#結構二:[三元運算 for循環 條件]

print([i if i >3 else "哈哈"for i in range(1,11) ])
#['哈哈', '哈哈', '哈哈', 4, 5, 6, 7, 8, 9, 10]

print([i if i >3 else "哈哈"for i in range(1,11) if i>1 if i>5 ])
#[6, 7, 8, 9, 10]

lst=[]
for i in range(3):
    for em in range(2):
        lst.append(em)
print(lst)#[0, 1, 0, 1, 0, 1]
#等同於
print([em for i in range (3) for em in range(2)])#[0, 1, 0, 1, 0, 1]

#集合推導式
#普通循環模式
print({i for i in range(5)})

#篩選模式
print({i if i <1 else"嘿嘿" for i in range(5) if i >2})#集合天然去重,{'嘿嘿'}

#字典推導式
print({i:i for i in range(5)})

#元組沒有推導式,只有生成器
g=(i for i in range(5))
print(next(g))#0
print(next(g))#1
print(next(g))#2

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章