国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專(zhuān)欄INFORMATION COLUMN

Python3列表解析之任意迭代、表達(dá)式、條件和嵌套循環(huán)等特性詳解

番茄西紅柿 / 1123人閱讀

摘要:概述列表解析即利用現(xiàn)有的可迭代對(duì)象創(chuàng)建新的列表的語(yǔ)法,其過(guò)程完全可以用循環(huán)復(fù)刻,但其解析效率比循環(huán)快一些,缺點(diǎn)也很明顯,即不適合用于大數(shù)據(jù)迭代對(duì)象的解析,因?yàn)闀?huì)占用大量?jī)?nèi)存,導(dǎo)致。當(dāng)然列表解析讓人愛(ài)不釋手的另一個(gè)原因就是簡(jiǎn)潔。

概述

列表解析即利用現(xiàn)有的可迭代對(duì)象創(chuàng)建新的列表的Python語(yǔ)法,其過(guò)程完全可以用for循環(huán)復(fù)刻,但其解析效率比f(wàn)or循環(huán)快一些,缺點(diǎn)也很明顯,即不適合用于大數(shù)據(jù)迭代對(duì)象的解析,因?yàn)闀?huì)占用大量?jī)?nèi)存,導(dǎo)致MemoryError。當(dāng)然列表解析讓人愛(ài)不釋手的另一個(gè)原因就是簡(jiǎn)潔。

列表解析基礎(chǔ)示例

解析列表

L = [1, 2, 3, 4, 5]
LL = [x ** 2 for x in L]
[print(x) for x in LL]

示例結(jié)果:

1
4
9
16
25

示例中我們完成了對(duì)原列表元素每個(gè)值進(jìn)行平方的操作,每個(gè)元素的平方結(jié)果構(gòu)成了新的列表

解析字典

D = {
    one: 1,
    two: 2,
    three: 3,
    four: 4,
    five: 5
}
L = [D[key] ** 2 for key in D]
[print(x) for x in L]
1
4
9
16
25

示例中我們利用列表解析獲取字典的鍵值并對(duì)每個(gè)鍵值進(jìn)行平方的操作,而每個(gè)鍵值的平方結(jié)果構(gòu)成了新的列表

解析字符串

S = 12345
L = [int(s) ** 2 for s in S]
[print(x) for x in L]

示例結(jié)果

1
4
9
16
25

示例中我們利用列表解析獲取字符串中單個(gè)字符串并且轉(zhuǎn)為整型并進(jìn)行平方和的操作,而每個(gè)平方后的結(jié)果構(gòu)成了新的列表

解析文件

with open(ex.txt) as f:
    lines = f.readlines()
    LINES = [line.strip().title() for line in lines]
    [print(line) for line in LINES]
i like python.
python makes me happy.
without python, without live.

示例中我們甚至可以利用列表解析讀取文件中的數(shù)據(jù)

表達(dá)式

列表解析中的表達(dá)式(expr)可以是簡(jiǎn)單的或者復(fù)雜的表達(dá)式,甚至是函數(shù),若在前面的例子中我們利用列表解析逐一打印了列表中的數(shù)據(jù)。

def is_even(x):
    if x >= 0 and x % 2:
        return x, True
    else:
        return x, False


L = [1, 2, 3, 4, 5]
L_EVEN = [is_even(x) for x in L]
print(L_EVEN)

示例結(jié)果

[(1, True), (2, False), (3, True), (4, False), (5, True)]
條件列表解析

在列表解析中我們也可以直接加入條件限制解析出的元素

L = [1, 2, 3, 4, 5]
L_EVEN = [x for x in L if x >= 0 and x % 2]
[print(EVEN) for EVEN in L_EVEN]

示例結(jié)果:

1
3
5
多值列表解析

列表解析也支持對(duì)迭代對(duì)象的多值解析

D = {
    one: 1,
    two: 2,
    three: 3,
    four: 4,
    five: 5
}
L = [{} = {}.format(key, value) for (key, value) in D.items()]
[print(x) for x in L]

示例結(jié)果

one = 1
two = 2
three = 3
four = 4
five = 5
嵌套循環(huán)

列表解析可以進(jìn)行嵌套循環(huán),原理和for中的嵌套循環(huán)一致

L1 = [a, b, c]
L2 = [1, 2, 3]
L = [x+y for x in L1 for y in L2]
[print(x) for x in L]

示例結(jié)果

a1
a2
a3
b1
b2
b3
c1
c2
c3

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/7135.html

相關(guān)文章

  • Python3列表解析任意迭代達(dá)式條件嵌套循環(huán)特性詳解

    摘要:概述列表解析即利用現(xiàn)有的可迭代對(duì)象創(chuàng)建新的列表的語(yǔ)法,其過(guò)程完全可以用循環(huán)復(fù)刻,但其解析效率比循環(huán)快一些,缺點(diǎn)也很明顯,即不適合用于大數(shù)據(jù)迭代對(duì)象的解析,因?yàn)闀?huì)占用大量?jī)?nèi)存,導(dǎo)致。當(dāng)然列表解析讓人愛(ài)不釋手的另一個(gè)原因就是簡(jiǎn)潔。 概述 列表解析即利用現(xiàn)有的可迭代對(duì)象創(chuàng)建新的列表的Python語(yǔ)法,其過(guò)程完全可以用for循環(huán)復(fù)刻,但其解析效率比f(wàn)or循環(huán)快一些,缺點(diǎn)也很明顯,即不適合用于大數(shù)據(jù)迭...

    callmewhy 評(píng)論0 收藏0
  • Python基礎(chǔ)控制結(jié)構(gòu)

    摘要:基礎(chǔ)之控制結(jié)構(gòu)學(xué)習(xí)目標(biāo)代碼塊與縮進(jìn)條件語(yǔ)句語(yǔ)句語(yǔ)句的嵌套斷言循環(huán)循環(huán)循環(huán)中斷循環(huán)控制語(yǔ)句綜合嵌套列表解析式基礎(chǔ)相關(guān)鏈接學(xué)習(xí)目標(biāo)是簡(jiǎn)潔易學(xué)面向?qū)ο蟮木幊陶Z(yǔ)言。 Py...

    liaosilzu2007 評(píng)論0 收藏0
  • 首次公開(kāi),整理12年積累的博客收藏夾,零距離展示《收藏夾吃灰》系列博客

    摘要:時(shí)間永遠(yuǎn)都過(guò)得那么快,一晃從年注冊(cè),到現(xiàn)在已經(jīng)過(guò)去了年那些被我藏在收藏夾吃灰的文章,已經(jīng)太多了,是時(shí)候把他們整理一下了。那是因?yàn)槭詹貖A太亂,橡皮擦給設(shè)置私密了,不收拾不好看呀。 ...

    Harriet666 評(píng)論0 收藏0
  • Python3學(xué)習(xí)】走進(jìn)Python

    摘要:如為,小數(shù)點(diǎn)后兩位是,存在四舍五入。在中,有一個(gè)小坑,就是并不是真正的四舍五入如圖而可以這樣的總結(jié)為在奇數(shù)的時(shí)候,是四舍五入,在偶數(shù)的時(shí)候是五舍六入函數(shù)執(zhí)行后輸出的提示返回的是數(shù)據(jù)類(lèi)型是,所以有時(shí)需要進(jìn)行類(lèi)型轉(zhuǎn)換,這樣的函數(shù)。 Python語(yǔ)言的概述 Pyhthon 是 蟒蛇的意思。python語(yǔ)言的擁有者是 Python Software Foundation(PSF)RSF是一個(gè)非...

    fuchenxuan 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<