Python推導式(生成式)

2021-08-22 06:14:40 字數 1337 閱讀 6578

推導式是從乙個或者多個迭代器快速簡潔的建立資料結構的一種方法。可以將迴圈和條件判斷相結合,從而避免語法冗長的**。

常見的列表推導式有以下兩種格式 

[expression for item in iterable]

下面通過具體的**舉例說明列表推導式的應用

>>> power_list=[x*x for x in range(1,11)]

>>> power_list

[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

>>>

>>> odd_list=[x for x in range(1,11) if x%2==1]

>>> odd_list

[1, 3, 5, 7, 9]

>>>

>>> a=(1,2)

>>> b=(3,4)

>>> a_b=[(na,nb) for na in a for nb in b]

>>> a_b

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

>>>

>>> str1='abc'

>>> str2='xyz'

>>> [s1+s2 for s1 in str1 for s2 in str2]

['ax', 'ay', 'az', 'bx', 'by', 'bz', 'cx', 'cy', 'cz']

>>>

字典推導式格式如下:

示例**

>>> s='letters'

>>> d=

>>> d

>>>

集合推導式該格式如下:

示例**

>>> m_set=

>>> m_set

>>>

示例**

>>> number_thing=(number for number in range(1,11))

>>> number_thing

at 0x00000287d48dffc0>

>>> type(number_thing)

>>> number_list = list(number_thing)

>>> number_list

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

>>> try_again = list(number_thing)

>>> try_again

>>>

Python列表推導式和生成式

推導式 作用 按一定的邏輯順序,生成列表,簡單且快捷 語法一 表示式 for 變數 in 舊列表 例如生成乙個 1,2,3,4,5,6,7 列表 x for x in range 1 8 或者生成乙個 1,4,9,16,25,36,49,64,81 的列表 x x for x in range 1 ...

python中的推導式和生成式

對乙個列表 集合,字典 根據條件進行迴圈遍歷,把符合條件的篩選出來並生成新的列表 集合,字典 括號內可以寫for迴圈和if else並且可以多層巢狀for if,甚至可以在裡面再巢狀乙個推導式 中括號內寫入for迴圈,對乙個列表進行遍歷,然後寫乙個if條件判斷,對每次迴圈取出的值進行判斷,結果為tr...

python生成器推導式

1.生成器推導式是繼列表推導式後的有一中python推導式,他比列表推導式速度更快,占用的記憶體也更少。2.使用生成器物件時,可以根據需要將他轉化為列表或者元組,也可以是喲個生成器對像 next 方法或內建函式next 進行遍歷,其具有惰性求值的特點,進行一次遍歷後便不能再次方位內部元素,即訪問一次...