在本文中,小編將分享20 個(gè) Python 一行代碼,你可以在 30 秒或更短的時(shí)間內(nèi)輕松學(xué)習(xí)它們。這種單行代碼將節(jié)省你的時(shí)間,并使你的代碼看起來(lái)更干凈且易于閱讀。
1 一行 For 循環(huán)
for 循環(huán)是一個(gè)多行語(yǔ)句,但是在 Python 中,我們可以使用列表推導(dǎo)式方法在一行中編寫 for 循環(huán)。以過濾小于250的值為例,查看下面的代碼示例。
#For循環(huán)在一行 mylist=[200,300,400,500] #正常方式 result=[] forxinmylist: ifx>250: result.append(x) print(result)#[300,400,500] #一行代碼方式 result=[xforxinmylistifx>250] print(result)#[300,400,500] 2 一行 While 循環(huán)這個(gè) One-Liner 片段將向你展示如何在一行中使用 While 循環(huán)代碼,我已經(jīng)展示了兩種方法。
#方法1SingleStatement whileTrue:print(1)#infinite1 #方法2多語(yǔ)句 x=0 whilex5:?print(x);x=x+1#012345 3 一行 IF Else 語(yǔ)句好吧,要在一行中編寫 IF Else 語(yǔ)句,我們將使用三元運(yùn)算符。三元的語(yǔ)法是“[on true] if [expression] else [on false]”。我在下面的示例代碼中展示了 3 個(gè)示例,以使你清楚地了解如何將三元運(yùn)算符用于一行 if-else 語(yǔ)句。要使用 Elif 語(yǔ)句,我們必須使用多個(gè)三元運(yùn)算符。
#ifElse在一行中 #Example1ifelse print("Yes")if8>9elseprint("No")#No #Example2ifelifelse E=2 print("High")ifE==5elseprint("數(shù)據(jù)STUDIO")ifE==2else print("Low")#數(shù)據(jù)STUDIO #Example3onlyif if3>2:print("Exactly")#Exactly 4 一行合并字典這個(gè) 單行代碼段將向你展示如何使用一行代碼將兩個(gè)字典合并為一個(gè)。下面我展示了兩種合并字典的方法。
#在一行中合并字典 d1={'A':1,'B':2} d2={'C':3,'D':4} #方法1 d1.update(d2) print(d1)#{'A':1,'B':2,'C':3,'D':4} #方法2 d3={**d1,**d2} print(d3)#{'A':1,'B':2,'C':3,'D':4} 5 一行函數(shù)我們有兩種方法可以在一行中編寫函數(shù),在第一種方法中,我們將使用與三元運(yùn)算符或單行循環(huán)方法相同的函數(shù)定義。第二種方法是用 lambda 定義函數(shù)。查看下面的示例代碼以獲得更清晰的理解。
#函數(shù)在一行中 #方法一 deffun(x):returnTrueifx%2==0elseFalse print(fun(2))#False #方法2 fun=lambdax:x%2==0 print(fun(2))#True print(fun(3))#False 6 一行遞歸這個(gè)單行代碼片段將展示如何在一行中使用遞歸。我們將使用一行函數(shù)定義和一行 if-else 語(yǔ)句。下面是查找斐波那契數(shù)的示例。
#單行遞歸 #Fibonaci單行遞歸示例 defFib(x):return1ifxin{0,1}elseFib(x-1)+Fib(x-2) print(Fib(5))#8 print(Fib(15))#987 7 一行數(shù)組過濾Python 列表可以通過使用列表推導(dǎo)方法在一行代碼中進(jìn)行過濾。以過濾偶數(shù)列表為例。
#一行中的數(shù)組過濾 mylist=[2,3,5,8,9,12,13,15] #正常方式 result=[] forxinmylist: ifx%2==0: result.append(x) print(result)#[2,8,12] #單線方式 result=[xforxinmylistifx%2==0] print(result)#[2,8,12] 8 一行異常處理我們使用異常處理來(lái)處理 Python 中的運(yùn)行時(shí)錯(cuò)誤。你知道我們可以在一行中編寫這個(gè) Try except 語(yǔ)句嗎?通過使用 exec() 語(yǔ)句,我們可以做到這一點(diǎn)。
#一行異常處理 #原始方式 try: print(x) except: print("Error") #單行方式 exec('try:print(x) except:print("Error")')#錯(cuò)誤 9 一行列表轉(zhuǎn)字典我們可以使用 Python enumerate() 函數(shù)將 List 轉(zhuǎn)換為一行字典。在enumerate() 中傳遞列表并使用dict() 將最終輸出轉(zhuǎn)換為字典格式。
#字典在一行 mydict=["John","Peter","Mathew","Tom"] mydict=dict(enumerate(mydict)) print(mydict)#{0:'John',1:'Peter',2:'Mathew',3:'Tom'} 10 一行多變量Python 允許在一行中進(jìn)行多個(gè)變量賦值。下面的示例代碼將向你展示如何做到這一點(diǎn)。
#多行變量 #正常方式 x=5 y=7 z=10 print(x,y,z)#5710 #單行方式 a,b,c=5,7,10 print(a,b,c)#5710 11 一行交換值交換是編程中一項(xiàng)有趣的任務(wù),并且總是需要第三個(gè)變量名稱 temp 來(lái)保存交換值。這個(gè)單行代碼段將向你展示如何在沒有任何臨時(shí)變量的情況下交換一行中的值。
#換成一行 #正常方式 v1=100 v2=200 temp=v1 v1=v2 v2=temp print(v1,v2)#200100 #單行交換 v1,v2=v2,v1 print(v1,v2)#200100 12 一行排序排序是編程中的一個(gè)普遍問題,Python 有許多內(nèi)置的方法來(lái)解決這個(gè)排序問題。下面的代碼示例將展示如何在一行中進(jìn)行排序。
#在一行中排序 mylist=[32,22,11,4,6,8,12] #方法1 mylist.sort() print(mylist)##[4,6,8,11,12,22,32] print(sorted(mylist))#[4,6,8,11,12,22,32] 13 一行讀取文件不使用語(yǔ)句或正常讀取方法,也可以正確讀取一行文件。
#一行讀取文件 #正常方式 withopen("data.txt","r")asfile: data=file.readline() print(data)#Helloworld #單行方式 data=[line.strip()forlineinopen("data.txt","r")] print(data)#['helloworld','HelloPython'] 14 一行類上課總是多線工作。但是在 Python 中,有一些方法可以在一行代碼中使用類特性。
#一行中的類 #普通方式 classEmp: def__init__(self,name,age): self.name=name self.age=age emp1=Emp("云朵君",22) print(emp1.name,emp1.age)#云朵君22 #單行方式 #方法1帶有動(dòng)態(tài)Artibutes的Lambda Emp=lambda:None;Emp.name="云朵君";Emp.age=22 print(Emp.name,Emp.age)#云朵君22 #方法2 fromcollectionsimportnamedtuple Emp=namedtuple('Emp',["name","age"])("云朵君",22) print(Emp.name,Emp.age)#云朵君22 15 一行分號(hào)一行代碼片段中的分號(hào)將向你展示如何使用分號(hào)在一行中編寫多行代碼。
#一行分號(hào) #例1 a="Python";b="編程";c="語(yǔ)言";print(a,b,c) #輸出 #Python編程語(yǔ)言 16 一行打印這不是很重要的片段,但有時(shí)當(dāng)你不需要使用循環(huán)來(lái)執(zhí)行任務(wù)時(shí)它很有用。
#一行打印 #正常方式 forxinrange(1,5): print(x)#1234 #單行方式 print(*range(1,5))#1234 print(*range(1,6))#12345 17 一行map函數(shù)Map 函數(shù)是適用的高階函數(shù)。這將函數(shù)應(yīng)用于每個(gè)元素。下面是我們?nèi)绾卧谝恍写a中使用 map 函數(shù)的示例。
#在一行中map print(list(map(lambdaa:a+2,[5,6,7,8,9,10]))) #輸出 #[7,8,9,10,11,12] 18 刪除列表第一行中的 Mul 元素你現(xiàn)在可以使用 del 方法在一行代碼中刪除 List 中的多個(gè)元素,而無(wú)需進(jìn)行任何修改。
#刪除一行中的Mul元素 mylist=[100,200,300,400,500] delmylist[1::2] print(mylist)#[100,300,500] 19 一行打印圖案現(xiàn)在你不再需要使用for循環(huán)來(lái)打印相同的圖案。你可以使用 print 語(yǔ)句和星號(hào) (*) 在一行代碼中執(zhí)行相同的操作。
#在一行中打印圖案# #正常方式 forxinrange(3): print('') #輸出 # #單行方式 print(''*3)# print(''*2)# print(''*1)# 20 一行查找質(zhì)數(shù)此代碼段將向你展示如何編寫單行代碼來(lái)查找范圍內(nèi)的素?cái)?shù)。
#查找質(zhì)數(shù) print(list(filter(lambdaa:all(a%b!=0forbinrange(2,a)), range(2,20)))) #輸出 #[2,3,5,7,11,13,17,19]
審核編輯:湯梓紅
-
編程
+關(guān)注
關(guān)注
88文章
3614瀏覽量
93685 -
循環(huán)
+關(guān)注
關(guān)注
0文章
92瀏覽量
15971 -
代碼
+關(guān)注
關(guān)注
30文章
4779瀏覽量
68521 -
python
+關(guān)注
關(guān)注
56文章
4792瀏覽量
84627 -
運(yùn)算符
+關(guān)注
關(guān)注
0文章
172瀏覽量
11079
原文標(biāo)題:20個(gè)非常有用的Python單行代碼
文章出處:【微信號(hào):AndroidPush,微信公眾號(hào):Android編程精選】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論