提前說一點:如果你是專注于Python開發,那么本系列知識點只是帶你入個門再詳細的開發點就要去看其他資料了,而如果你和作者一樣只是操作其他技術的Python API那就足夠了。
Python提供的推導式,只對列表、字典、集合三種數據類型生效,其他的類型沒有推導式一說,且推導式的目的其實是簡化代碼,所以它無法完成逆天的操作
第一種:列表推導式
它的作用是用一個表達式去創建或者控制一個有規律的列表,注意有規律的
目標:創建一個元素為0-10的列表a = [ i+1 for i in range(10)]
print(a)
結果:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
列表推導式其實說的就是一個簡化的for循環而已,而且列表推導式可以加 if 條件判斷
a = [ i for i in range(10) if i % 2 == 0]
print(a)
結果:[0, 2, 4, 6, 8]
同時它可以多個for一起寫
a = [ i+j for i in range(10) for j in range(3)]
print(a)
結果:[0, 1, 2, 1, 2, 3, 2, 3, 4, 3, 4, 5, 4, 5, 6, 5, 6, 7, 6, 7, 8, 7, 8, 9, 8, 9, 10, 9, 10, 11]
列表推導式,就只有上面這三種模式,太復雜的大家還是直接寫 for 循環吧
第二種:字典推導式
字典推導式的作用是合并列表為字典或者提取字典中的數據
目標:創建一個key是0-5,value是key的平方的字典a = { i : i**2 for i in range(5) }
print(a)
結果:{0: 0, 1: 1, 2: 4, 3: 9, 4: 16}
同樣合并列表,我們可以這樣寫
a = ["name"]
b = ["Tom"]
c = { a[i] : b[i] for i in range(len(a))}
print(c)
結果:{'name': 'Tom'}
第三種:集合推導式
a = { i for i in range(5)}
print(a)
結果:set([0, 1, 2, 3, 4])
有了上面兩,我相信大家都已經知道推導式是干什么的了,它其實復雜操作也做不了,但是它可以幫你完成一些如創建、遍歷、修改等有規律的便捷操作