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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

一句话搞定python六剑客

發(fā)布時間:2025/4/5 python 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 一句话搞定python六剑客 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

六劍客

一行搞定六劍客:三個函數(shù):map?filter?reduce?+?lambda?切片?推導(dǎo)列表

python最有特點的一行代碼,所有代碼均可以借用一行代碼(目標(biāo))

?

1.map(函數(shù),列表或者字符串)#字符串或者列表中每個字符或每個元素都帶入函數(shù)運算

1.map函數(shù):

輸出結(jié)果為列表

1)列表元素的map運算,

>>>?map(s,[1,2,3])

[2,?3,?4]

2)字符串元素的map運算,函數(shù)用lambda實現(xiàn)

>>>?map(lambda?x:x.upper(),"abc")

['A',?'B',?'C']

3)函數(shù)自定義,應(yīng)用自定義函數(shù)套用將列表或字符串中每個元素輸出,

實例:自定義函數(shù)map

>>>?def?uppercase(s):

...?if?s>='A'?and?s<='Z':

...?return?s

...?else:

...?return?""

...

>>>?print?"".join(map(uppercase,"AABBabAN"))

AABBAN

?

實例:使用map函數(shù),將一個字符串中的小寫字母刪除掉,例如:“AABBaabb”,

結(jié)果返回"AABB"

?

def?delete_lowercase(s):

????if?s>='a'?and?s<="z":

????????return?""

????else:

????????return?s

?

print?"".join(map(delete_lowercase,"AABBaabb"))

>>>?"".join([i?for?i?in?map(lambda?x:(re.match(r"[ACDEFGHIJKLMNOPQRSTUVWXYZ]*",x).group()),"asdASD")?if?i!=""])

'ASD'、

2.filter?兩個參數(shù)(自定義函數(shù)名,列表)對列表中的元素過濾后輸出

?

filter實例:

>>>?def?uppercase(s):

...?if?s>='A'?and?s<='Z':

...?return?s

...?else:

...?return?""

...

>>>?print?"".join(map(uppercase,"AABBabAN"))

AABBAN

>>>?print?"".join(filter(uppercase,"AABBabFN"))

AABBFN

>>>

?

實例:

filter(lambda?x:x?in?string.uppercase,"AAaaSSBB")

?

reduce(lambda?x,y:x+y,range(1,101))

3、reduce (函數(shù)名,列表)將列表中的元素逐一累計

?

累加

>>>?print?reduce(lambda?x,y:x+y,range(1,101))

5050

階乘

>>>?print?reduce(lambda?x,y:x*y,range(1,5))

24

>>>?print?reduce(lambda?x,y:x*y,range(1,7))

720

實例:

list_a=[1,1,1,3,5,6,8]

func=lambda?x,y:x?if?y?in?x?else?x?+?[y]

print?reduce(func,[[],]+list_a)

?

4.lambda函數(shù),變量:運算表達式:將變量按運算表達式運算后輸出

語法:變量:運算表達式?如?x:x+1

?

引用:?函數(shù)名(變量賦值)?a(1)

>>>?a=lambda?x:x+1

>>>?a(4)

5

>>>?a=lambda?x,y,z:(x+y)*z

>>>?a(1,1,4)

8

>>>?a=lambda?x:s*x

>>>?s=1

>>>?a(5)

兩個參數(shù)lambda函數(shù)

import?string

fp?=?open("e:\\1.txt","w")

content=map(lambda?x,y:x+","+str(y)+"\n",list(string.lowercase),range(1,27))

fp.writelines(content)

?

list_a=[1,1,1,3,5,6,8]

func=lambda?x,y:x?if?y?in?x?else?x?+?[y]

print?reduce(func,[[],]+list_a)

5.推導(dǎo)列表?結(jié)果表達式+范圍+條件

?

[str(a)*i?for?i?in?range(1,times+1)]

實例:將列表中的每個元素變?yōu)橹貜?fù)字符串,如1?變?yōu)?a?2變?yōu)?aa?3變?yōu)閍aa

a=int(raw_input("input?a?value:"))

times=int(raw_input("input?count?times:"))

print?u"總和為:",eval("+".join([str(a)*i?for?i?in?range(1,times+1)]))

字符串轉(zhuǎn)換后?用+合并?并用eval?轉(zhuǎn)為求和

列表推導(dǎo)式是Python基礎(chǔ),好用,而又非常重要的功能,也是最受歡迎的Python特性之一,可以說掌握它是成為合格Python程序員的基本標(biāo)準(zhǔn)。本質(zhì)上可以把列表推導(dǎo)式理解成一種集合了變換和篩選功能的函數(shù),通過這個函數(shù)把一個列表轉(zhuǎn)換成另一個列表。注意是另一個新列表,原列表保持不變。

看示例:

(1)對列表中的每項元素進行立方運算(變換功能)

a?=?[1,?2,?3,?4,?5,?6,?7,?8,?9,?10]

b?=?[x?**?3?for?x?in?a]

print(a)?

print(b)

[1,?2,?3,?4,?5,?6,?7,?8,?9,?10]?

[1,?8,?27,?64,?125,?216,?343,?512,?729,?1000]

(2)對列表中為偶數(shù)的元素進行立方運算(帶篩選條件的變換功能)

a=?[1,?2,?3,?4,?5,?6,?7,?8,?9,?10]

b?=?[x?**?3?for?x?in?a?if?x?%?2?==?0]

print(b)

[8,?64,?216,?512,?1000]

???????從結(jié)果上可以看出有篩選條件的話是先篩選再變換,即先篩掉不滿足條件的元素,再進行變換運算。可以同時加多個篩選條件,如對大于5的且是偶數(shù)的元素進行立方運算,示例如下:

a=?[1,?2,?3,?4,?5,?6,?7,?8,?9,?10]

b?=?[x?**?3?for?x?in?a?if?x?%?2?==?0?if?x?>?5]

print(b)

[216,?512,?1000]

?

?

(3)與zip結(jié)合

???????將a,b兩個列表中相對應(yīng)得值組合起來,形成一個新列表。例如包含x坐標(biāo)的列表與y坐標(biāo)的列表形成相對應(yīng)的點坐標(biāo)[x,?y]列表。

a=?[-1,?-2,?-3,?-4,?-5,?-6,?-7,?-8,?-9,?-10]

b?=?[1,?2,?3,?4,?5,?6,?7,?8,?9,?10]

xy?=?[[x,?y]?for?x,?y?in?zip(a,?b)]

print(xy)

[[-1,?1],?[-2,?2],?[-3,?3],?[-4,?4],?[-5,?5],?[-6,?6],?[-7,?7],?[-8,?8],?[-9,?9],?[-10,?10]]

(4)支持多層for循環(huán)

???????將一個嵌套列表轉(zhuǎn)換成一個一維列表。

a=?[[1,?2,?3],?[4,?5,?6],?[7,?8,?9]]

b?=?[j?for?i?in?a?for?j?in?i]

print(b)

[1,?2,?3,?4,?5,?6,?7,?8,?9]

???????Python中還有字典推導(dǎo)式、集合推導(dǎo)式等,與列表推導(dǎo)式使用方式大致相同。

???????列表推導(dǎo)式的使用非常廣泛,從實際使用經(jīng)驗來看,列表推導(dǎo)式使用的頻率是非常高的,也是相當(dāng)好用的。而對于列表推導(dǎo)式的多層for循環(huán),尤其是3層以上的或帶復(fù)雜篩選條件的,犧牲了較多的可讀性,直接用多個普通for循環(huán)方式實現(xiàn)就可以了,畢竟方便的實現(xiàn)功能是第一位的,多幾行代碼就多幾行吧。

實例:楊輝三角:

?#coding=utf-8

def?yhtriangle(n):

l=[1]

print?l

while?n>0:

?

l=[1]+[x+y?for?x,y?in?zip(l[:],l[1:])]+[1]

n-=1

?

print?l

?

yhtriangle(10)

6、切片

切片語法如下:

s[begin?:?end?:?stride]

與簡單切片語法相比,擴展切片只是增加了第3個參數(shù),即步長參數(shù)(英文資料中通常稱為"stride"或"step")。

擴展切片語法引入的"stride"參數(shù)是個需要特別注意的參數(shù),因為它的正/負(fù)取值將會影響切片操作對源序列s的訪問方向,而這正是本文開始那幾個示例可能引起Python新手困惑的原因。

其實規(guī)則很簡單,說穿不值一文錢:

1)?當(dāng)stride參數(shù)為正值(positive)時,表明切片操作從左至右(即正向)訪問源序列s的元素,此時,若begin和end參數(shù)有缺省,則Python解釋器默認(rèn)將其設(shè)置為None。如s[0?:?:?1]會被解釋器當(dāng)作s[0?:?None?:?1],此時,end實際取值要大于其有效索引范圍的上限值,以保證切片操作能訪問到源序列s從begin開始的所有元素(從左向右)。

2)?當(dāng)stride參數(shù)為負(fù)值(negative)時,表明切片操作從右至左(即逆向)訪問源序列s的元素,此時,若begin和end參數(shù)有缺省,則Python解釋器默認(rèn)將其設(shè)置為None。如s[-1?:?:?-1]會被解釋器當(dāng)作s[-1?:?None?:?-1],此時,end實際取值要小于其有效索引范圍的下限值,已保證切片操作能訪問到源序列s從begin開始的所有元素(逆向,從右向左)。

3)?無論stride參數(shù)取正值還是負(fù)值,切片表達式的begin和end索引值需要保證在切片操作的訪問方向上,從begin到end之間有元素,這樣切片操作才能保證返回非空集。

s[4,8,1]

?切片實例:

import?os

os.system("ls?-al?>?a.txt")

with?open("a.txt")?as?fp:

????for?i?in?fp:

????????if?"1.py"?in?i:

????????????print?i.split()[-2]#倒數(shù)第二位

????????????break

?

>>>?l=[1,2,3,4,5,6]

>>>?l[:]

[1,?2,?3,?4,?5,?6]

>>>?l[1:]

[2,?3,?4,?5,?6]

l[:]

l[1:]

?

?

轉(zhuǎn)載于:https://www.cnblogs.com/zyy98877/p/8490942.html

總結(jié)

以上是生活随笔為你收集整理的一句话搞定python六剑客的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日本在线视频一区二区 | 国产a级网站 | 美女张开腿让男人桶爽 | 无遮挡国产 | 日本少妇一区二区三区 | 69re视频| 日韩中文电影 | 国产免费一区二区视频 | 国产成人精| 在线五月天| 色www情| 性猛╳xxx乱大交 | 中文字幕精品一二三四五六七八 | 成人免费av | 456av| 国产精品女同 | 国产在线观看免费高清 | 日韩天堂一区 | 波多野结衣99 | 天天综合在线观看 | 四虎影库 | 性爱免费在线视频 | 嫩草网站在线观看 | 国产15页 | www国产亚洲精品久久网站 | 国产日韩欧美成人 | 黄色中文 | 日韩欧美无| 欧美综合久久久 | 欧美日韩一区二区在线观看 | 国产在线资源 | 寡妇激情做爰呻吟 | 色吧久久| 青青久在线视频 | 国产视频97 | 97国产精品视频人人做人人爱 | 风韵多水的老熟妇 | 蜜臀人妻四季av一区二区不卡 | 91综合精品 | 朝鲜美女黑毛bbw | 欧洲成人一区二区三区 | 免费人成视频在线 | 国产精品亚洲欧美在线播放 | 国产69精品久久久久777 | 国产麻豆xxxvideo实拍 | 美女视频网址 | 亚洲高清精品视频 | 亚洲另类春色 | 男人的天堂在线视频 | 啪啪福利视频 | 91色影院| 国产女人18毛片18精品 | 91免费国产 | 国产欧美日韩精品区一区二污污污 | 欧洲精品一区二区三区久久 | 欧美做爰啪啪xxxⅹ性 | 国产精品久久久久久久久免费 | 999国内精品永久免费视频 | 视频在线免费 | 少妇一级淫片免费播放 | 胖女人做爰全过程 | 中国黄色一级片 | 欧美一区二区三区视频在线 | 69热在线观看 | 新婚夫妇白天啪啪自拍 | 日韩中文字幕网址 | 视频国产一区 | 69色综合 | 日韩第二页 | 人人爱人人插 | 视频一区二区在线播放 | 免费久久网站 | www.九九热.com| 亚洲中文字幕一区 | 欧美精品99 | 国产最新自拍 | 91麻豆精品国产91久久久无需广告 | japanese国产 | 欧产日产国产精品98 | 女人脱下裤子让男人捅 | 美女在线观看视频 | 夜夜嗨av一区二区三区网页 | 亚洲乱码国产乱码精品精98午夜 | 欧美又粗又深又猛又爽啪啪九色 | 99网站 | 国内国产精品天干天干 | 四虎少妇做爰免费视频网站四 | 蜜臀国产AV天堂久久无码蜜臀 | 91精品视频免费看 | 国产精品色综合 | 国产亚洲av片在线观看18女人 | 免费观看黄色网页 | 青青草精品在线视频 | 大学生一级一片全黄 | 亚洲第一区av | 国产一级片在线播放 | 国产免费黄色网址 | 久久夜夜夜 | 久久久久久久久久久久久久国产 |