摘要:概述列表解析即利用現(xiàn)有的可迭代對象創(chuàng)建新的列表的語法,其過程完全可以用循環(huán)復(fù)刻,但其解析效率比循環(huán)快一些,缺點也很明顯,即不適合用于大數(shù)據(jù)迭代對象的解析,因為會占用大量內(nèi)存,導(dǎo)致。當(dāng)然列表解析讓人愛不釋手的另一個原因就是簡潔。
概述列表解析即利用現(xiàn)有的可迭代對象創(chuàng)建新的列表的Python語法,其過程完全可以用for循環(huán)復(fù)刻,但其解析效率比for循環(huán)快一些,缺點也很明顯,即不適合用于大數(shù)據(jù)迭代對象的解析,因為會占用大量內(nèi)存,導(dǎo)致MemoryError。當(dāng)然列表解析讓人愛不釋手的另一個原因就是簡潔。
列表解析基礎(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
示例中我們完成了對原列表元素每個值進行平方的操作,每個元素的平方結(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
示例中我們利用列表解析獲取字典的鍵值并對每個鍵值進行平方的操作,而每個鍵值的平方結(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
示例中我們利用列表解析獲取字符串中單個字符串并且轉(zhuǎn)為整型并進行平方和的操作,而每個平方后的結(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ù)
表達式列表解析中的表達式(expr)可以是簡單的或者復(fù)雜的表達式,甚至是函數(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多值列表解析
列表解析也支持對迭代對象的多值解析
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)
列表解析可以進行嵌套循環(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)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/6763.html
摘要:概述列表解析即利用現(xiàn)有的可迭代對象創(chuàng)建新的列表的語法,其過程完全可以用循環(huán)復(fù)刻,但其解析效率比循環(huán)快一些,缺點也很明顯,即不適合用于大數(shù)據(jù)迭代對象的解析,因為會占用大量內(nèi)存,導(dǎo)致。當(dāng)然列表解析讓人愛不釋手的另一個原因就是簡潔。 概述 列表解析即利用現(xiàn)有的可迭代對象創(chuàng)建新的列表的Python語法,其過程完全可以用for循環(huán)復(fù)刻,但其解析效率比for循環(huán)快一些,缺點也很明顯,即不適合用于大數(shù)據(jù)迭...
摘要:基礎(chǔ)之控制結(jié)構(gòu)學(xué)習(xí)目標代碼塊與縮進條件語句語句語句的嵌套斷言循環(huán)循環(huán)循環(huán)中斷循環(huán)控制語句綜合嵌套列表解析式基礎(chǔ)相關(guān)鏈接學(xué)習(xí)目標是簡潔易學(xué)面向?qū)ο蟮木幊陶Z言。 Py...
摘要:時間永遠都過得那么快,一晃從年注冊,到現(xiàn)在已經(jīng)過去了年那些被我藏在收藏夾吃灰的文章,已經(jīng)太多了,是時候把他們整理一下了。那是因為收藏夾太亂,橡皮擦給設(shè)置私密了,不收拾不好看呀。 ...
摘要:如為,小數(shù)點后兩位是,存在四舍五入。在中,有一個小坑,就是并不是真正的四舍五入如圖而可以這樣的總結(jié)為在奇數(shù)的時候,是四舍五入,在偶數(shù)的時候是五舍六入函數(shù)執(zhí)行后輸出的提示返回的是數(shù)據(jù)類型是,所以有時需要進行類型轉(zhuǎn)換,這樣的函數(shù)。 Python語言的概述 Pyhthon 是 蟒蛇的意思。python語言的擁有者是 Python Software Foundation(PSF)RSF是一個非...
閱讀 2368·2021-11-15 11:38
閱讀 3579·2021-09-22 15:16
閱讀 1220·2021-09-10 11:11
閱讀 3199·2021-09-10 10:51
閱讀 3003·2019-08-30 15:56
閱讀 2808·2019-08-30 15:44
閱讀 3219·2019-08-28 18:28
閱讀 3551·2019-08-26 13:36