20非常有用的Python單行代碼分享
有用的 Python 單行代碼片段,只需一行代碼即可解決特定編碼問題!
在本文中,云朵君將分享20 個 Python 一行代碼,你可以在 30 秒或更短的時間內(nèi)輕松學習它們。這種單行代碼將節(jié)省你的時間,并使你的代碼看起來更干凈且易于閱讀。
1 一行 For 循環(huán)
for 循環(huán)是一個多行語句,但是在 Python 中,我們可以使用列表推導式方法在一行中編寫 for 循環(huán)。以過濾小于250的值為例,查看下面的代碼示例。
#For循環(huán)在一行 mylist?=?[200,?300, 400,?500] #正常方式 result?=?[]?</code><code>for?x?in?mylist:? ????if?x?>?250:? ????????result.append(x)? print(result)?#?[300,?400,?500]</code><code>#一行代碼方式 result?=?[x?for?x?in?mylist?if?x?>?250]? print(result)?#?[300,?400,?500]
2 一行 While 循環(huán)
這個 One-Liner 片段將向你展示如何在一行中使用 While 循環(huán)代碼,我已經(jīng)展示了兩種方法。
#方法?1?Single?Statement? while?True:?print(1)?#infinite?1 #方法?2?多語句 x?=?0? while?x?<?5:?print(x);?x=?x?+?1?#?0?1?2?3?4?5
3 一行 IF Else 語句
好吧,要在一行中編寫 IF Else 語句,我們將使用三元運算符。三元的語法是“[on true] if [expression] else [on false]”。
我在下面的示例代碼中展示了 3 個示例,以使你清楚地了解如何將三元運算符用于一行 if-else 語句。要使用 Elif 語句,我們必須使用多個三元運算符。
#if?Else?在一行中
#Example?1?if?else
print("Yes")?if?8?>?9?else?print("No")?#?No
#Example?2?if?elif?else?
E?=?2?
print("High")?if?E?==?5?else?print("數(shù)據(jù)STUDIO")?if?E?==?2?else?
print("Low")?#?數(shù)據(jù)STUDIO?
?
#Example?3?only?if
if?3?>?2:?print("Exactly")?#?Exactly
4 一行合并字典
這個 單行代碼段將向你展示如何使用一行代碼將兩個字典合并為一個。下面我展示了兩種合并字典的方法。
#?在一行中合并字典
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ù),在第一種方法中,我們將使用與三元運算符或單行循環(huán)方法相同的函數(shù)定義。
第二種方法是用 lambda 定義函數(shù)。查看下面的示例代碼以獲得更清晰的理解。
#函數(shù)在一行中 #方法一 def?fun(x):?return?True?if?x?%?2?==?0?else?False? print(fun(2))?#?False #方法2 fun?=?lambda?x?:?x?%?2?==?0? print(fun(2))?#?True? print(fun(3))?#?False
6 一行遞歸
這個單行代碼片段將展示如何在一行中使用遞歸。我們將使用一行函數(shù)定義和一行 if-else 語句。下面是查找斐波那契數(shù)的示例。
#?單行遞歸
#Fibonaci?單行遞歸示例
def?Fib(x):?return?1?if?x?in?{0,?1}?else?Fib(x-1)?+?Fib(x-2)
print(Fib(5))?#?8
print(Fib(15))?#?987
7 一行數(shù)組過濾
Python 列表可以通過使用列表推導方法在一行代碼中進行過濾。以過濾偶數(shù)列表為例。
#?一行中的數(shù)組過濾 mylist?=?[2,?3,?5,?8,?9,?12,?13,?15] #正常方式 result?=?[]? for?x?in?mylist:? ????if?x?%?2?==?0:? ????????result.append(x) print(result)?#?[2,?8,?12] #?單線方式 result?=?[x?for?x?in?mylist?if?x?%?2?==?0]? print(result)?#?[2,?8,?12]
8 一行異常處理
我們使用異常處理來處理 Python 中的運行時錯誤。你知道我們可以在一行中編寫這個 Try except 語句嗎?通過使用 exec() 語句,我們可以做到這一點。
#?一行異常處理
#原始方式
try:
????print(x)
except:
????print("Error")
#單行方式
exec('try:print(x)?\nexcept:print("Error")')?#?錯誤
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 允許在一行中進行多個變量賦值。下面的示例代碼將向你展示如何做到這一點。
#多行變量 #正常方式 x?=?5? y?=?7? z?=?10? print(x?,?y,?z)?#?5?7?10 #單行方式 a,?b,?c?=?5,?7,?10? print(a,?b,?c)?#?5?7?10
11 一行交換值
交換是編程中一項有趣的任務(wù),并且總是需要第三個變量名稱 temp 來保存交換值。這個單行代碼段將向你展示如何在沒有任何臨時變量的情況下交換一行中的值。
#換成一行 #正常方式 v1?=?100 v2?=?200 temp?=?v1 v1?=?v2? v2?=?temp print(v1,?v2)?#?200?100 #?單行交換 v1,?v2?=?v2,?v1? print(v1,?v2)?#?200?100
12 一行排序
排序是編程中的一個普遍問題,Python 有許多內(nèi)置的方法來解決這個排序問題。下面的代碼示例將展示如何在一行中進行排序。
#?在一行中排序 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 一行讀取文件
不使用語句或正常讀取方法,也可以正確讀取一行文件。
#一行讀取文件
#正常方式
with?open("data.txt",?"r")?as?file:?
????data?=?file.readline()?
????print(data)?#?Hello?world
#單行方式
data?=?[line.strip()?for?line?in?open("data.txt","r")]?
print(data)?#?['hello?world',?'Hello?Python']
14 一行類
上課總是多線工作。但是在 Python 中,有一些方法可以在一行代碼中使用類特性。
#?一行中的類
#普通方式
class?Emp:?
????def?__init__(self,?name,?age):?
????????self.name?=?name?
????????self.age?=?age
????????emp1?=?Emp("云朵君",?22)?
print(emp1.name,?emp1.age)?#?云朵君?22
#單行方式
#方法?1?帶有動態(tài)?Artibutes?的?Lambda
Emp?=?lambda:None;?Emp.name?=?"云朵君";?Emp.age?=?22
print(Emp.name,?Emp.age)?#?云朵君?22
#方法?2?
from?collections?import?namedtuple
Emp?=?namedtuple('Emp',?["name",?"age"])?("云朵君",?22)?
print(Emp.name,?Emp.age)?#?云朵君?22
15 一行分號
一行代碼片段中的分號將向你展示如何使用分號在一行中編寫多行代碼。
#?一行分號 #?例?1? a?=?"Python";?b?=?"編程";?c?=?"語言";?print(a,?b,?c) #?輸出 #?Python?編程語言
16 一行打印
這不是很重要的片段,但有時當你不需要使用循環(huán)來執(zhí)行任務(wù)時它很有用。
#?一行打印 #正常方式 for?x?in?range(1,?5): ????print(x)?#?1?2?3?4 #單行方式 print(*range(1,?5))?#?1?2?3?4 print(*range(1,?6))?#?1?2?3?4?5
17 一行map函數(shù)
Map 函數(shù)是適用的高階函數(shù)。這將函數(shù)應(yīng)用于每個元素。下面是我們?nèi)绾卧谝恍写a中使用 map 函數(shù)的示例。
#在一行中map print(list(map(lambda?a:?a?+?2,?[5,?6,?7,?8,?9,?10]))) # 輸出 #?[7,?8,?9,?10,?11,?12]
18 刪除列表第一行中的 Mul 元素
你現(xiàn)在可以使用 del 方法在一行代碼中刪除 List 中的多個元素,而無需進行任何修改。
#?刪除一行中的Mul元素 mylist?=?[100,?200,?300,?400,?500] del?mylist[1::2] print(mylist)?#?[100,?300,?500]
19 一行打印圖案
現(xiàn)在你不再需要使用for循環(huán)來打印相同的圖案。你可以使用 print 語句和星號 (*) 在一行代碼中執(zhí)行相同的操作。
#?在一行中打印圖案#?
#?正常方式
for?x?in?range(3):
????print('??')
#?輸出
#?????????
#單行方式
print('??'?*?3)?#??????????
print('??'?*?2)?#???????
print('??'?*?1)?#???
20 一行查找質(zhì)數(shù)
此代碼段將向你展示如何編寫單行代碼來查找范圍內(nèi)的素數(shù)。
#?查找質(zhì)數(shù) print(list(filter(lambda?a:?all(a?%?b?!=?0?for?b?in?range(2,?a)), ??????????????????range(2,20)))) #?輸出 #?[2,?3,?5,?7,?11,?13,?17,?19]
到此這篇關(guān)于20非常有用的Python單行代碼分享的文章就介紹到這了,更多相關(guān)Python單行代碼內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python利用dir函數(shù)查看類中所有成員函數(shù)示例代碼
這篇文章主要給大家介紹了關(guān)于python如何利用dir函數(shù)查看類中所有成員函數(shù)的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用python具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習下吧。2017-09-09
使用Python構(gòu)造hive insert語句說明
這篇文章主要介紹了使用Python構(gòu)造hive insert語句說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-06-06
Python實現(xiàn)登錄人人網(wǎng)并抓取新鮮事的方法
這篇文章主要介紹了Python實現(xiàn)登錄人人網(wǎng)并抓取新鮮事的方法,可實現(xiàn)Python模擬登陸并抓取新鮮事的功能,需要的朋友可以參考下2015-05-05
詳解Python 關(guān)聯(lián)規(guī)則分析
這篇文章主要介紹了Python 關(guān)聯(lián)規(guī)則分析的相關(guān)資料,幫助大家更好的理解和學習使用python,感興趣的朋友可以了解下2021-03-03
關(guān)于tensorflow softmax函數(shù)用法解析
這篇文章主要介紹了關(guān)于tensorflow softmax函數(shù)用法解析,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-06-06

