91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

總結python列表推導和生成器表達式

發布時間:2020-07-21 09:13:11 來源:億速云 閱讀:151 作者:小豬 欄目:開發技術

小編這次要給大家分享的是總結python列表推導和生成器表達式,文章內容豐富,感興趣的小伙伴可以來了解一下,希望大家閱讀完這篇文章之后能夠有所收獲。

首先來看一下代碼:

chars = "abcd"
tmp = []
for char in chars:
 tmp.append(ord(char))
print(tmp)

這是一般的寫法,將字符串中的每一個字符轉換稱ASCII碼,然后存進一個tmp數組。

利用列表推導的方式

tmp = [ord(char) for char in chars]

輸出:[97,98,99,100]

列表推導中也可以使用if和else。

當只有一個if時:

chars = "abcd"
tmp = [ord(char) for char in chars if ord(char)>=98]
print(tmp)

輸出:['b','c','d']

額外提一下,當然我們也可以利用filter和map達到相同的效果

tmp = list(filter(lambda x:x>=98,map(ord,chars)))

這句話的意思是,使用map對chars中的每一個字符利用ord函數進行處理。再使用filter對這每一個字符的ASCII碼進行過濾大于等于98的,最后將這些符合條件的值存進一個列表中。lambda x:x>98是一個匿名函數。

有一個if else時:

chars = "abcd"
tmp = [True if ord(char)>=98 else False for char in chars]
print(tmp)

輸出:[False, True, True, True]

一般而言,列表推導應盡量保持簡短。

再看下一個例子:利用列表推導計算笛卡兒積(以衣服的顏色和尺寸為例)

colors = ["black","white"]
sizes = ["S","M","L"]
tshirts = [(color,size) for color in colors for size in sizes]
print(tshirts)

生成器表達式可以用于生成其它數據類型的序列,雖然列表推導也可以初始化元祖、數組和其它類型,但是生成器表達式是更好的選擇。這是因為生成器表達式背后遵從迭代器協議,可以逐個產生元素,而不是先建立一個完整的列表

生成器表達式語法和列表差不多,只不過把方括號變成圓括號。

用生成器表達式生成元組和數組例子:

chars = "abcd"
tmp = tuple(ord(char) for char in chars)
print(tmp)

輸出:(97, 98, 99, 100)

import array
chars = "abcd"
a = array.array("I",(ord(char) for char in chars))
print(a)

輸出:array('I', [97, 98, 99, 100])

array的構造方法須提供兩個參數,第一個是數組中元素的存儲方式。如果生成器表達式是唯一的參數,就不用括號括起來,這里不是唯一的,因此要用括號括起來。

colors = ["black","white"]
sizes = ["S","M","L"]
for tshirt in ("%s %s" % (c,s) for c in colors for s in sizes):
  print(tshirt)

輸出:

black S
black M
black L
white S
white M
white L

看完這篇關于總結python列表推導和生成器表達式的文章,如果覺得文章內容寫得不錯的話,可以把它分享出去給更多人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

赣州市| 闽清县| 满洲里市| 三台县| 筠连县| 三门峡市| 阿拉善右旗| 西平县| 衡阳市| 临海市| 健康| 丹阳市| 山阳县| 阿拉善右旗| 屯门区| 鄢陵县| 连南| 将乐县| 武平县| 博白县| 乌兰浩特市| 郸城县| 改则县| 赫章县| 延长县| 资源县| 德庆县| 奉新县| 通河县| 崇文区| 日土县| 普格县| 长宁区| 合江县| 昆山市| 景泰县| 班戈县| 松原市| 华池县| 杭州市| 古蔺县|