日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python中列表生成式strip_列表生成式|让你的代码简洁又美观

發布時間:2025/3/21 python 63 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python中列表生成式strip_列表生成式|让你的代码简洁又美观 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文作者:陳丹慧,中南財經政法大學金融學院

文字編輯:任?哲

技術總編:張馨月

導讀

已知列表list1=[1,2,3,4,5,6,7,8,9,10],如果我們想把list1中每個元素都加上2010,生成一個新列表,該怎么做呢?

勤奮的小白會這樣做:

list1=list(range(1,11))

list2=[]

for i in list1:

list2.append(i+2010)

list2

image01.png

而用列表生成式(List Comprehensions)一行就能代替上述代碼:

[i+2010 for i in range(1,11)]

image02.png

是不是很神奇呢?一行代碼就創造了有規律的新列表,看起來就像一根藤上結出了果實。今天,我就來帶大家玩轉列表生成式,掌握列表生成式的更多用法。

1.語法

根據Python官方文檔的說明,列表生成式是一種簡便快捷地創造列表的方式。它通常是用來創建一個新列表,這個新列表的元素是在可迭代對象(包括字符串、元組、列表、字典、集合等可被for遍歷循環的對象)的基礎上生成的。

(1)基本語法

[exp for iter_var in iterable]

作用過程:迭代iterable中的元素,再根據表達式exp計算出一個新值,最后將所有計算出的新值放在列表中,就生成了一個新的列表。

剛剛在導讀中給大家展示了用列表生成式在list1的基礎上生成list2,這里再詳解一下它的作用過程:

[i+2010 for i in range(1,11)]

首先我們知道range(1,11)生成一個1到10的有序序列,它是可以被for遍歷循環的。第一輪時,賦值i=1,再根據"i+2010"算出新值"2011";第二輪時,賦值i=2,再根據表達式算出新值"2012"……最后一輪時,賦值i=10,根據表達式算出的新值為"2020"。這些新值會按照順序排列放在一個的新列表中被返回,即我們在導讀中看到的輸出結果。

(2)增加if語句過濾功能

[exp for iter_var in iterable if_exp]

作用過程:迭代iterable中每個元素,每次迭代都判斷下if_exp表達式是否為真,如果為True則執行下一步,將返回元素通過exp得到一個新值;如果為False,則丟棄該元素,進行下一次迭代。最后,所有通過exp計算出來的新值將以一個新列表的形式返回。

我們用它來實現以下功能:過濾原列表list3=[-4,-2,0,2,4]中的負數。

list3=[-4,-2,0,2,4]

list4=[]

#不用列表生成式

for x in list3:

if x>=0:

list4.append(x)

#使用列表生成式

list4=[x for x in list3 if x >=0]

list4

out3.png

(3)嵌套循環

[exp for iter_var_A in iterrable_A for iter_var_B in iterable_B]

作用過程:先迭代iterable_A中的元素,每當迭代一個iterable_A中的一個元素,隨之就會把iterable_B中每個元素都迭代一遍,最后根據表達式exp算出新值,并返回一個新列表。

乍一看,是不是頭皮發麻。不要怕,看了下面的例子你會豁然開朗。

給定list5=["星期","周"],list6=["一","二","三","四","五","六","七"],用列表生成式生成一個新列表list7,將新列表中元素為list5,list6對應位置元素相加,代碼如下:

list5=["星期","周"]

list6=["一","二","三","四","五","六","日"]

list7=[]

#不使用列表生成式

for i in list5:

for j in list6:

list7.append("%s"%i+"%s"%j)

#使用列表生成式

list7=["%s"%i+"%s"%j for i in list5 for j in list6]

list7

最后輸出結果如下:

out4.png

2.應用

(1)字典里的應用

列表生成式結合字典的items方法,可以生成鍵值對列表:

dict={"Jack":179,"Rose":172}

list=[k+"身高為"+str(v)+"cm" for k,v in dict.items()]

list

輸出結果如下:

out5.png

(2)批量去空格

結合字符串的strip方法來刪除原列表中所有字符串元素中的空白字符,生成一個新列表:

list=[' 爬蟲',' 俱','樂部 ']

[s.strip() for s in list2]

輸出結果如下:

out6.png

(3)輸出某個目錄下所有文件夾和文件名

結合os模塊,列表生成式能輸出某個目錄下所有文件夾和文件名

import os

[d for d in os.listdir("E:/Python/python基礎")]

輸出結果如下:

image23.png

今天的介紹就到這里了。希望大家能好好應用列表生成式,讓你的代碼簡潔又美觀!之后我們還會介紹更多有趣的知識,來幫你提升效率,敬請期待哦!

1ae8c76224e0e3302cd69df5cd8bb86.jpg

總結

以上是生活随笔為你收集整理的python中列表生成式strip_列表生成式|让你的代码简洁又美观的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。