純乾貨分享python推導式知識點

2021-10-24 14:52:38 字數 3450 閱讀 8483

推導式可以簡潔、高效地將散亂的資料組織起來存放到容器(列表、元組、字典、集合)中。

推導式是python簡潔、優雅、高效的完美體現。熟練掌握推導式,相信會對你編寫python程式有很大的幫助。

推導式一般是配合迴圈使用的,通過推導式組織起來的資料可以很方便的迴圈處理,未經組織的零散資料處理起來會很麻煩。例如要找到很多數字中符合某種特徵的數字,放入列表中迴圈判斷處理就很方便。再如讀取日誌檔案,需要篩選出符合某種條件的記錄時,將資料組織成列表巢狀字典結構可讀性會很高、處理也更加方便。python程式設計師在編寫**時幾乎每天都會用到推導式。

推導式可以建立容器物件(列表、元組、字典、集合等等),推導式的基本構造請看下圖:

以下會列舉非常多的**示例,學習推導式的朋友一定要認真練習,在練習的過程中熟悉和掌握推導式。

# 列表推導式:0-9

l1 = [i for i in range(10)]

# 列表推導式:0-9範圍內的偶數

l2 = [i for i in range(10) if i % 2 == 0]

print(l1)

print(l2)

# 元組推導式:0-9

t1 = tuple(i for i in range(10)) # 不用tuple生成的是迭代器

# 元組推導式:0-9範圍內的偶數

t2 = tuple(i for i in range(10) if i % 2 == 0) # 不用tuple生成的是迭代器

print(t1)

print(t2)

# 集合推導式:0-9

l1 =

# 集合推導式:0-9範圍內的偶數

l2 =

print(l1)

print(l2)

# 字典推導式,鍵是0-9,值是a-j

d1 =

# 字典推導式,鍵是0-9,值是a-j

d2 =

# 字典推導式,一行**互換鍵和值

d3 =

print(d1)

print(d2)

print(d3)

out:

(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)

(0, 2, 4, 6, 8)

# 注意多條for巢狀時,先迴圈最左邊,再迴圈右邊

list1 = [(x, y) for x in range(5) for y in range(3)]

list2 = [[x,y,z] for x in range(1,3) for y in range(1,4) for z in range(1,3)]

print(list1)

print(list2)

out:

[(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2), (3, 0), (3, 1), (3, 2), (4, 0), (4, 1), (4, 2)]

[[1, 1, 1], [1, 1, 2], [1, 2, 1], [1, 2, 2], [1, 3, 1], [1, 3, 2], [2, 1, 1], [2, 1, 2], [2, 2, 1], [2, 2, 2], [2, 3, 1], [2, 3, 2]]

list1 = [(x, y) for x in range(3) for y in range(3)] #list內的元素是tuple

list2 = [ for x in range(3) for y in range(3)] #list內的元素是set

list3 = [[x, y] for x in range(3) for y in range(3)] #list內的元素是list

print(list1)

print(list2)

print(list3)

out:

[(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]

[, , , , , , , , ]

[[0, 0], [0, 1], [0, 2], [1, 0], [1, 1], [1, 2], [2, 0], [2, 1], [2, 2]]

# 建立字典,鍵值對是0:a..9:j

dict1 =

# 建立字典,鍵值對是0:a..9:j,將鍵轉換成字元型,將值從小寫字母轉換成大寫字母

dict2 =

print(dict1)

print(dict2)

out:

list1 = [chr(i) for i in range(97, 123)]  # 建立列表,元素是26個小寫字母

list2 = [chr(i) for i in range(97, 123) if i % 2 == 0] # 建立列表,只保留ascii值是偶數的字母

list3 = [chr(i) for i in range(97, 123) if i % 2 == 1] # 建立列表,只保留ascii值是奇數的字母

list4 = [chr(i) for i in range(97, 123) if i < 97 + 13] # 建立列表,只保留26個字母的前面一半

list5 = [chr(i) for i in range(97, 123) if i >= 97 + 13] # 建立列表,只保留26個字母的後面一半

print(list1)

print(list2)

print(list3)

print(list4)

print(list5)

out:

['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']

['b', 'd', 'f', 'h', 'j', 'l', 'n', 'p', 'r', 't', 'v', 'x', 'z']

['a', 'c', 'e', 'g', 'i', 'k', 'm', 'o', 'q', 's', 'u', 'w', 'y']

['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm']

['n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']

純乾貨分享python推導式知識點,如果覺得對你有啟發和幫助,歡迎關注、點讚、**,素質三連,不勝感謝。

python 推導 Python 推導式

python 語言有一種獨特的語法,它可以用最簡單的方式生成乙個列表 元組或字典,它們叫推導式。常見的推導式 列表推導式 字典推導式 集合推導式 列表推導式 列表推導式可以快速生成乙個列表,其語法格式為 x x for x in range 6 結果 0,1,4,9,16,25 相當於 l for ...

Python列表推導式,集合推導式,元組推導式

先定義乙個列表a a 1,2,3,4,5,6,7,8 1a 1,2,3,4,5,6,7,8 列表推導 d i 2 for i in a 集合推導 e 元組推導 f i 2 for i in a print type d print type e print type f 輸出 123 4567 89...

python 推導式 Python 入門之 推導式

推導式就是構建比較有規律的列表,生成器,字典等一種簡便的方式。1 推導式 1 列表推導式 1 普通迴圈 變數 for迴圈 print i for i in range 10 2 篩選模式 加工後的變數 for迴圈 加工條件 print i for i in range 10 if i 2 0 2 集...