日韩性视频-久久久蜜桃-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)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 麻豆av影视| 亚洲成年人网站在线观看 | 青青草华人在线视频 | 性欧美久久 | 一区二区在线看 | 久草免费在线视频 | 成人一级黄色 | 三级黄色在线 | 婷婷色综合网 | 欧美字幕| 波多野结衣中文字幕一区二区三区 | 国产在线视频99 | 日韩在线观看视频一区二区三区 | 国v精品久久久网 | 精品一区av| av电影中文字幕 | 91超薄肉色丝袜交足高跟凉鞋 | 97涩涩网| 日本aⅴ在线 | 久久久www成人免费毛片 | 激情婷婷综合网 | 日本xx视频 | 国产又粗又猛又爽 | 偷拍亚洲另类 | 久久久久久久久久久久久久国产 | 免费av观看网站 | 欧亚毛片| 久久亚洲精品中文字幕 | ww久久| 日韩一区二区三区在线 | 一本久久综合亚洲鲁鲁五月天 | 青草视频在线免费观看 | 在线播放少妇奶水过盛 | 两性囗交做爰视频 | 内射中出日韩无国产剧情 | 青青青青青青青青草 | 性中国古装videossex | 97国产视频| 精品深夜av无码一区二区老年 | 九九色在线| 五月婷婷丁香网 | 午夜久久久 | 亚色图| 91chinese在线 | 亚洲一区二区三区免费看 | 色av免费| 国产精品久久久久久亚洲av | 一区二区三区丝袜 | 亚洲女人毛茸茸 | 在线观看视频国产 | 亚洲成人a v| 久青草视频在线 | 国产一区二区女内射 | 天天综合精品 | 美乳在线播放 | 一本一道波多野结衣av黑人 | 日本精品在线观看 | 超碰蜜臀 | 成年视频在线观看 | jizz高潮| 亚洲第一色 | 黑人玩弄人妻一区二区三区免费看 | 免费成人深夜在线观看 | 天天摸天天 | 午夜影院在线观看 | 美女黄视频在线观看 | 日韩乱码一区二区 | 成人手机在线免费视频 | 99er精品视频 | 欧美大片免费高清观看 | 97se亚洲综合 | 日韩av一二三 | 免费一区二区三区视频在线 | 在线免费观看av不卡 | 欧美三个黑人玩3p | 国产黄大片在线观看画质优化 | 欧美精品18videosex性欧美 | 亚洲一区二区三 | 国产一区二区三区高清 | 国产女人与zoxxxx另类 | 99热免费观看 | 香蕉小视频 | 国产精品调教 | 香港三级日本三级三69 | 欧美在线免费 | 91美女诱惑 | 欧美成人三级在线视频 | 草色网| 国产区视频在线观看 | 误杀1电影免费观看高清完整版 | 91精品国产99久久久久久红楼 | 午夜精品久久久久久久久久 | 久久久久亚洲av无码专区首jn | 亚洲av成人一区二区国产精品 | 国产农村妇女aaaaa视频 | 超碰加勒比 | 日日碰狠狠添天天爽无码av | 成人免费视频一区二区三区 | 中文字幕在线视频日韩 |