国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Python 中的列表推導(dǎo)式

這篇具有很好參考價(jià)值的文章主要介紹了Python 中的列表推導(dǎo)式。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

列表推導(dǎo)式是一種 Python 構(gòu)造,可減少生成新列表或過(guò)濾現(xiàn)有列表所需的代碼行。列表推導(dǎo)式包含在方括號(hào)內(nèi),它由一個(gè)表達(dá)式、一個(gè)或多個(gè) for 循環(huán)和一個(gè)用于過(guò)濾生成的列表的可選條件組成。

列表推導(dǎo)式使用以下語(yǔ)法:

new_list = [expression(item) for item in iterable if condition]

翻譯翻譯就是:

new_list = []
for item in iterable:
    if condition:
        new_list.append(expression(item))

簡(jiǎn)單用法

最原始的1到10

numbers = [x for x in range(1,11)]
print(numbers)
>>> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

乘個(gè)2

numbers = [2*x for x in range(1,11)]
print(numbers)
>>> [2, 4, 6, 8, 10, 12, 14, 16, 18, 20]

只要偶數(shù)

numbers = [x for x in range(1,11) if x%2==0]
print(numbers)
>>> [2, 4, 6, 8, 10]

來(lái)個(gè)等差數(shù)列

numbers = [2*x-1 for x in range(1,11)]
print(numbers)
>>> [1, 3, 5, 7, 9, 11, 13, 15, 17, 19]

來(lái)個(gè)二維數(shù)組

numbers = [[x, x**2] for x in range(2,7)]
print(numbers)
>>> [[2, 4], [3, 9], [4, 16], [5, 25], [6, 36]]

添加多個(gè)條件

只要一個(gè)范圍內(nèi)

numbers = [2*x for x in range(1,11) if x>2 and x<5]
print(numbers)
>>> [6, 8]

要添加 else 條件,我們必須重新排列列表理解元素的順序。一個(gè)三元表達(dá)式的順序
我們必須將條件移動(dòng)到 for 關(guān)鍵字之前,以便在不滿足 if 條件時(shí)返回一個(gè)不同于 2*x 的值。

# 如果 x 的值介于2和5之間,則列表推導(dǎo)式返回 2*x,否則返回 3*x。
numbers = [2*x if x > 2 and x < 5 else 3*x for x in range(10)]
print(numbers)
>>> [0, 3, 6, 6, 8, 15, 18, 21, 24, 27]

如果條件在多一點(diǎn)

numbers = []
for x in range(10):
    if x > 2 and x < 5:
        numbers.append(2*x)
    elif x <=2:
        numbers.append(3*x)
    else:
        numbers.append(4*x)
print(numbers)
>>> [0, 3, 6, 6, 8, 20, 24, 28, 32, 36]
numbers = [2*x if x > 2 and x < 5 else 3*x if x <=2 else 4*x for x in range(10)]
print(numbers)
>>> [0, 3, 6, 6, 8, 20, 24, 28, 32, 36]

多個(gè)列表使用

與 zip 函數(shù)一起使用的列表推導(dǎo)返回一個(gè)元組列表,其中第 n 個(gè)元組包含每個(gè)列表的第 n 個(gè)元素。

cities = ['Rome', 'Warsaw', 'London']
countries = ['Italy', 'Poland', 'United Kingdom']
abc = [(city, country) for city, country in zip(cities, countries)]
print(abc)
>>> [('Rome', 'Italy'), ('Warsaw', 'Poland'), ('London', 'United Kingdom')]
cities = ['Rome', 'Warsaw', 'London']
countries = ['Italy', 'Poland', 'United Kingdom']
languages = ['Italian', 'Polish', 'English']
abc = [(city, country, language) for city, country, language in zip(cities, countries, languages)]
print(abc)
>>> [('Rome', 'Italy', 'Italian'), ('Warsaw', 'Poland', 'Polish'), ('London', 'United Kingdom', 'English')]

下面演示了兩種不同的加法。挨個(gè)加一遍,,對(duì)應(yīng)加,,

a = [2, 3, 4, 5]
b = [12, 13, 14, 15]
abc = [x+y for x in a for y in b]
print(abc)
>>> [14, 15, 16, 17, 15, 16, 17, 18, 16, 17, 18, 19, 17, 18, 19, 20]
a = [2, 3, 4, 5]
b = [12, 13, 14, 15]
abc = [x+y for x,y in zip(a,b)]
print(abc)
>>> [14, 16, 18, 20]

三個(gè)也是一樣的

a = [2, 3]
b = [12, 13]
c = [22, 23]
abc = [x+y+z for x in a for y in b for z in c]
print(abc)
>>> [36, 37, 37, 38, 37, 38, 38, 39]
a = [2, 3, 4, 5]
b = [12, 13, 14, 15]
c = [22, 23, 24, 25]
abc = [x+y+z for x,y,z in zip(a,b,c)]
print(abc)
>>> [36, 39, 42, 45]

替換 Reduce 和 Lambda

reduce 函數(shù)返回總和

from functools import reduce
numbers = [3, 6, 8, 23]
print(reduce(lambda a,b: a+b, numbers))
>>> 40

修改一下

print(sum([number for number in numbers]))
>>> 40

嵌套列表推導(dǎo)式

matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
for row in matrix:
    for item in row:
        item  *= 2
print(matrix)
>>> [[2, 4, 6], [8, 10, 12], [14, 16, 18]]

簡(jiǎn)單地來(lái)個(gè)轉(zhuǎn)換文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-740367.html

matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
matrix = [[item*2 for item in row] for row in matrix]
print(matrix)
>>> [[2, 4, 6], [8, 10, 12], [14, 16, 18]]

到了這里,關(guān)于Python 中的列表推導(dǎo)式的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Python 程序設(shè)計(jì)入門(mén)(008)—— 列表的操作(3):列表推導(dǎo)式

    使用列表推導(dǎo)式可以快速生成一個(gè)列表。或者根據(jù)某個(gè)列表生成滿足指定需求的列表。列表推導(dǎo)式包含在方括號(hào)內(nèi),它由一個(gè)表達(dá)式、一個(gè)或多個(gè) for 循環(huán)和一個(gè)用于過(guò)濾生成的列表的可選條件組成。 列表推導(dǎo)式的語(yǔ)法格式如下: 說(shuō)明: (1)Expressinon:表達(dá)式,用于計(jì)算列

    2024年02月14日
    瀏覽(23)
  • Python列表差異值統(tǒng)計(jì):集合操作、列表推導(dǎo)式、對(duì)稱(chēng)差集詳解

    Python列表差異值統(tǒng)計(jì):集合操作、列表推導(dǎo)式、對(duì)稱(chēng)差集詳解

    ? 在Python中,統(tǒng)計(jì)兩個(gè)列表的差異值有多種方法,其中包括使用集合操作、列表推導(dǎo)式等。下面我將通過(guò)實(shí)例詳細(xì)講解幾種常見(jiàn)的方法,并提供相應(yīng)的實(shí)例源代碼。 這些方法各有優(yōu)缺點(diǎn),選擇使用哪一種取決于你的具體需求和性能考慮。方法一和方法三使用了集合操作,可能

    2024年02月01日
    瀏覽(19)
  • Python 列表推導(dǎo)式(List Comprehension)的使用

    樣例代碼: 輸出如下: 源碼解釋?zhuān)?在給定函數(shù) func(g, arr) 中,表達(dá)式 [g(x) for x in arr] 是列表推導(dǎo)式(List Comprehension)的一種寫(xiě)法。它的作用是將函數(shù) g 應(yīng)用于列表 arr 中的每個(gè)元素 x ,并將結(jié)果存儲(chǔ)在一個(gè)新的列表中。 解釋 [g(x) for x in arr] 的過(guò)程如下: 對(duì)于列表 arr 中的每

    2024年02月12日
    瀏覽(14)
  • python經(jīng)典有序序列的list列表推導(dǎo)式

    生成一個(gè)數(shù)據(jù)列表 使用列表推導(dǎo)式生成該數(shù)據(jù)列表 分析: 1、使用一行代碼的列表推導(dǎo)式就完成了該列表的生成 2、[i for i in range(20)],第一個(gè)i元素代表向列表list_2中添加的元素 3、[i for i in range(20)],第二個(gè)i元素代表for循環(huán)遍歷的i元素 使用列表推導(dǎo)式生成只有偶數(shù)的數(shù)據(jù)列

    2024年02月02日
    瀏覽(23)
  • Python 列表推導(dǎo)式:簡(jiǎn)潔、高效的數(shù)據(jù)操作藝術(shù)

    Python 的列表推導(dǎo)式,這個(gè)看似簡(jiǎn)單的語(yǔ)法糖,實(shí)則內(nèi)含無(wú)限威力。在 Python 代碼編寫(xiě)中,列表推導(dǎo)式的靈活性和簡(jiǎn)潔性讓它成為了不可或缺的一部分。在這篇文章中,我們將更全面、更深入地探討列表推導(dǎo)式,從基礎(chǔ)的概念認(rèn)識(shí),到各類(lèi)進(jìn)階的用法和操作,我們一一揭秘。最

    2024年02月08日
    瀏覽(18)
  • 5、Python循環(huán)及列表推導(dǎo)式(List Comprehension)

    For 和 while 循環(huán)以及 Python最重要的功能:列表推導(dǎo)式(List Comprehension) 循環(huán)是重復(fù)執(zhí)行某些代碼的一種方式: In [1]: for 循環(huán)指定了以下內(nèi)容: 要使用的變量名(在這種情況下是 planet ) 要循環(huán)遍歷的值集合(在這種情況下是 planets ) 你使用 “ in ” 連接它們。 “ in ” 右邊

    2024年01月19日
    瀏覽(24)
  • python 列表推導(dǎo)同filter和map的比較

    filter 和 map 合起來(lái)能做的事情,列表推導(dǎo)也可以做,而且還不需要借助難以理解和閱讀的 lambda 表達(dá)式。 我原以為 map/filter 組合起來(lái)用要比列表推導(dǎo)快一些,Alex Martelli 卻說(shuō)不一定——至少在上面這個(gè)例子中不一定。在本書(shū)的代碼倉(cāng)庫(kù)(https://github.com/fluentpython/examplecode)中有

    2024年01月18日
    瀏覽(17)
  • 【Python】進(jìn)階學(xué)習(xí):列表推導(dǎo)式如何使用兩個(gè)for循環(huán)

    【Python】進(jìn)階學(xué)習(xí):列表推導(dǎo)式如何使用兩個(gè)for循環(huán)

    【Python】進(jìn)階學(xué)習(xí):列表推導(dǎo)式如何使用兩個(gè)for循環(huán) ?? 個(gè)人主頁(yè):高斯小哥 ?? 高質(zhì)量專(zhuān)欄:Matplotlib之旅:零基礎(chǔ)精通數(shù)據(jù)可視化、Python基礎(chǔ)【高質(zhì)量合集】、PyTorch零基礎(chǔ)入門(mén)教程?? 希望得到您的訂閱和支持~ ?? 創(chuàng)作高質(zhì)量博文(平均質(zhì)量分92+),分享更多關(guān)于深度學(xué)習(xí)、

    2024年03月17日
    瀏覽(35)
  • python 實(shí)現(xiàn)大語(yǔ)言模型中的概率論:兩人輪流出手對(duì)決時(shí)取勝概率的推導(dǎo)

    python 實(shí)現(xiàn)大語(yǔ)言模型中的概率論:兩人輪流出手對(duì)決時(shí)取勝概率的推導(dǎo)

    假設(shè)你跟朋友通過(guò)打賭投籃來(lái)打賭一萬(wàn)塊。你們找到一個(gè)籃球框,然后約定輪流投籃,誰(shuí)先投進(jìn)誰(shuí)贏。假設(shè)你投進(jìn)的概率是 p,也就是投不進(jìn)的概率是 1-p,你對(duì)手投進(jìn)的概率是 q,投不進(jìn)的概率是 1-q,如果由你先投,那么你取勝的概率是多少。 在上面問(wèn)題中我們把事情進(jìn)行了

    2024年01月23日
    瀏覽(27)
  • python中的列表

    python中的列表

    ?1.python中的列表,類(lèi)似于java中的數(shù)組,但是比較牛逼的是,他可以在其中加入不同的數(shù)據(jù)類(lèi)型,甚至列表中加列表,當(dāng)然它里面也可以是空的,也就是空列表。 2.向列表中添加元素 (1) append:列表名字.append(元素)? ? 默認(rèn)將添加的元素放到列表的最后一位 但是一次只能添

    2023年04月10日
    瀏覽(10)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包