1、列表生成式
舉乙個簡單的例子,輸出1-20之間的奇數。
my_list =
for i in
range(21
):if i %2==
1:print
(my_list)
# [1, 3, 5, 7, 9, 11, 13, 15, 17, 19]
print
([i for i in
range(21
)if i %2==
1])# [1, 3, 5, 7, 9, 11, 13, 15, 17, 19]
更複雜一些的邏輯(將輸出的1-20之間的奇數分別取平方)
def
handel_item
(item)
:return item * item
print
([handel_item(i)
for i in
range(21
)if i %2==
1])# [1, 9, 25, 49, 81, 121, 169, 225, 289, 361]
2、生成器
首先來說,將列表生成式中的,換成
()
,就變成了乙個生成器。
my_list =
(i for i in
range(21
)if i %2==
1)print
(type
(my_list)
)print
(my_list)
# # at 0x0000022bdaba64c8>
可通過for迴圈輸出每個元素
my_list =
(i for i in
range(21
)if i %2==
1)for i in my_list:
print
(i)#1 3 5 7 9 11 13 15 17 19
生成器和列表表示式之間的轉換
my_list =
(i for i in
range(21
)if i %2==
1)print
(my_list)
new_list =
list
(my_list)
print
(new_list)
# at 0x000002d5d63d64c8>
# [1, 3, 5, 7, 9, 11, 13, 15, 17, 19]
還可以通過yield
構造生成器,後續再講解。
3、字典推導式
交換鍵值順序
my_dict =
reverse_dice =
print
(reverse_dice)
#
補充:集合推導式
my_set =
print
(my_set)
print
(type
(my_set))#
#
雖然直接用my_set = set(my_dict.keys())
也行,但靈活性不高,也不像字典推導式那樣可以新增任意邏輯。 python中列表生成式
今天看書發現乙個很好玩的函式 列表生成式 格式如下 function x for x in itr x 列表生成式的收尾是列表的方括號。它用到乙個可以迭代的物件 iter x 將 iter x 的每乙個值傳入func x 中,用返回值建立乙個新列表。eg data list 1,2,3,4,5 li...
python中的列表生成式
1.列表生成式 列表生成式即list comprehensions,是python內建的非常簡單卻強大的可以用來建立列表的生成式.1.將字串s 51 5000 10000 賦值給多個變數 s 51 5000 10000 li for i in s.split k,a,b li print li pr...
Python中的列表生成式
前言 在python語言中,所謂列表生成式,就是說可以生成list列表的表示式,是python內建的一種強大的功能,有時候我們需要較複雜的函式來實現某個功能,而列表生成式可以很簡單的寫出來。今天我們主要來講一下列表生成式的應用案例。案例一 將字串中的內容拆開,轉換成整型 首先來看一下不使用列表生成式...