最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

分享Python中超級(jí)好用的三種解析式!

2023-07-03 18:30 作者:深度之眼官方賬號(hào)  | 我要投稿

來(lái)源:投稿 作者:Fairy
編輯:學(xué)姐

Python中的解析式(comprehension)是一種簡(jiǎn)單的語(yǔ)法結(jié)構(gòu),它可以從可迭代對(duì)象中生成新的序列、集合或字典。其中最常見(jiàn)的三種解析式分別是列表解析式、字典解析式和集合解析式。這種方式可以讓我們用更簡(jiǎn)單、更易讀的語(yǔ)法快速地生成數(shù)據(jù)結(jié)構(gòu),提高代碼效率。

列表解析式

列表解析式通常用于從一個(gè)可迭代對(duì)象(例如列表、元組等)中快速創(chuàng)建一個(gè)新的列表。它的語(yǔ)法與for循環(huán)類似,可以帶有條件語(yǔ)句。使用列表解析式能夠讓我們更加簡(jiǎn)潔地表達(dá)對(duì)可迭代對(duì)象的操作,同時(shí)提高代碼的可讀性和效率。

1. 基本形式

  • expression為每個(gè)元素要執(zhí)行的操作,可以是任何有效的 Python 表達(dá)式。

  • item 是從可迭代對(duì)象中依次讀取的每個(gè)元素。

  • iterable 是被迭代的對(duì)象。

下面我們來(lái)看一個(gè)例子:

這段代碼的含義是使用列表解析式生成一個(gè)包含0到9的整數(shù)列表,并將其賦值給new_list變量。其中,range(10)返回一個(gè)包含0到9的整數(shù)序列,for x in range(10)表示遍歷序列中的每個(gè)整數(shù),并將其賦值給變量x。在列表解析式的中括號(hào)內(nèi),我們可以指定對(duì)每個(gè)x所執(zhí)行的操作,本例中只是簡(jiǎn)單地將x放入新列表中。最終,打印輸出new_list。

2. 帶if條件

  • expression為每個(gè)元素要執(zhí)行的操作,可以是任何有效的 Python 表達(dá)式。

  • item 是從可迭代對(duì)象中依次讀取的每個(gè)元素。

  • iterable 是被迭代的對(duì)象。

  • condition 是可選的,如果提供,則是對(duì)元素進(jìn)行過(guò)濾的條件。

下面我們來(lái)看一個(gè)例子:

這段代碼的含義是通過(guò)列表解析式從一個(gè)給定的列表my_list中生成一個(gè)新的列表new_list,新列表包含my_list中所有偶數(shù)元素。

在列表解析式的中括號(hào)內(nèi),我們首先使用for循環(huán)語(yǔ)句遍歷my_list中的每個(gè)元素,并將其賦值給變量x。if語(yǔ)句,我們可以限制將哪些元素添加到新列表中。這個(gè)案例中,if語(yǔ)句指定只有當(dāng)x是偶數(shù)時(shí)才將其添加到新列表new_list中。

3. 嵌套循環(huán)

  • expression為每個(gè)元素要執(zhí)行的操作,可以是任何有效的 Python 表達(dá)式。

  • item 是從可迭代對(duì)象中依次讀取的每個(gè)元素。

  • iterable 是被迭代的對(duì)象。

下面我們來(lái)看一個(gè)例子:

這段代碼的含義是通過(guò)使用嵌套的兩個(gè)for循環(huán)語(yǔ)句,生成了一個(gè)新列表new_list。該列表包含了由所有x和y組成的元組。

具體來(lái)說(shuō),這個(gè)列表解析式首先使用第一個(gè)for循環(huán)語(yǔ)句遍歷range(3)產(chǎn)生的整數(shù)序列(即0, 1, 2),將每一個(gè)值依次賦予變量x,然后再使用第二個(gè)for循環(huán)語(yǔ)句再次遍歷相同的整數(shù)序列,將每一個(gè)值依次賦予變量y。在for循環(huán)中,兩個(gè)變量x和y組成了一個(gè)元組(x, y),并將這個(gè)元組添加到一個(gè)新列表new_list中。

字典解析式

字典解析式用于從一個(gè)可迭代對(duì)象中創(chuàng)建一個(gè)新的字典。它使用與列表解析式相似的語(yǔ)法,但使用鍵值對(duì)表示。

  • key_expression 和 value_expression 分別是由 item 元素產(chǎn)生的鍵和值。

  • item 是從可迭代對(duì)象中依次讀取的每個(gè)元素。

  • iterable 是被迭代的對(duì)象。

  • condition 是可選的,如果提供,則對(duì)元素進(jìn)行過(guò)濾的條件。

下面我們來(lái)看一個(gè)例子:

這段代碼的含義是通過(guò)使用字典解析式從給定列表my_list中生成一個(gè)新的字典new_dict,其中字典的鍵是my_list中的每個(gè)元素x,而對(duì)應(yīng)的值是該元素的平方。

具體來(lái)說(shuō),我們使用for循環(huán)語(yǔ)句遍歷my_list中的每個(gè)元素,并將其賦值給變量x。在字典解析式內(nèi)部,我們使用花括號(hào){}表示一個(gè)字典。對(duì)于遍歷到的每個(gè)元素x,我們可以指定要將其作為鍵key,并且用冒號(hào):與其對(duì)應(yīng)的平方x**2構(gòu)成一個(gè)鍵值對(duì),在字典中進(jìn)行存儲(chǔ)。

集合解析式

集合解析式用于從可迭代對(duì)象中創(chuàng)建一個(gè)新的集合。它將與列表解析式類似,但不會(huì)保留重復(fù)項(xiàng)。

  • expression是每個(gè)元素要執(zhí)行的操作,可以是任何有效的 Python 表達(dá)式。

  • item 是從可迭代對(duì)象中依次讀取的每個(gè)元素。

  • iterable 是被迭代的對(duì)象。

  • condition 是可選的,如果提供,則對(duì)元素進(jìn)行過(guò)濾的條件。

下面我們來(lái)看一個(gè)例子:

這段代碼的含義是通過(guò)集合解析式從給定列表my_list中生成一個(gè)新集合new_set,該集合包含所有在my_list中出現(xiàn)的偶數(shù)元素。

具體來(lái)說(shuō),我們使用for循環(huán)語(yǔ)句遍歷my_list中的每個(gè)元素,并將其賦值給變量x。在集合解析式中,我們使用花括號(hào){}表示一個(gè)集合。對(duì)于遍歷到的每個(gè)元素x,我們使用if語(yǔ)句判斷是否為偶數(shù),如果是,則將其添加到新集合new_set中。

推薦課程

《Python ·? AI&數(shù)據(jù)科學(xué)入門》

關(guān)注“學(xué)姐帶你玩AI”公眾號(hào)

回復(fù)“Python”了解課程詳情

分享Python中超級(jí)好用的三種解析式!的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
景德镇市| 南川市| 庐江县| 华容县| 商丘市| 海盐县| 成武县| 永胜县| 丹巴县| 乌恰县| 泸州市| 临邑县| 葵青区| 嘉定区| 永登县| 杨浦区| 科技| 桐柏县| 将乐县| 云安县| 吉林省| 康保县| 枝江市| 锡林郭勒盟| 安宁市| 乌鲁木齐县| 南和县| 泽普县| 巴青县| 衡东县| 手机| 武清区| 聊城市| 小金县| 敖汉旗| 贞丰县| 丰原市| 黄冈市| 华安县| 得荣县| 昌邑市|