這篇文章主要講解了“Python中常用的“一行代碼””,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Python中常用的“一行代碼””吧!
創(chuàng)新互聯(lián)建站從2013年成立,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目做網(wǎng)站、網(wǎng)站制作網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢想脫穎而出為使命,1280元齊河做網(wǎng)站,已為上家服務(wù),為齊河各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:18982081108
自從我用Python編寫第一行代碼以來,就被它的簡單性、出色的可讀性和特別流行的一行代碼所吸引。
在下面,我將給大家介紹并解釋一些Python一行程序。
可能有些你還不知道,但對(duì)你未來的Python項(xiàng)目很有用。
▍1、交換兩個(gè)變量
# a = 4 b = 5 a,bb = b,a # print(a,b) >> 5,4
讓我們通過交換兩個(gè)變量作為一個(gè)簡單的開始。
此方法是最簡單、最直觀的方法之一,無需使用臨時(shí)變量或應(yīng)用算術(shù)操作即可編寫。
▍2、多個(gè)變量賦值
a,b,c = 4,5.5,'Hello' #print(a,b,c) >> 4,5.5,hello
你可以使用逗號(hào)和變量一次性將多個(gè)值分配給變量。使用此技術(shù),你可以一次分配多個(gè)數(shù)據(jù)類型。
你可以使用列表將值分配給變量。下面是將列表中的多個(gè)值分配給變量的示例。
a,b,*c = [1,2,3,4,5] print(a,b,c) > 1 2 [3,4,5]
▍3、列表中偶數(shù)的和
有很多方法可以做到這一點(diǎn),但最好和最簡單的方法是使用列表索引和sum函數(shù)。
a = [1,2,3,4,5,6] s = sum([num for num in a if num%2 == 0]) print(s) >> 12
▍4、從列表中刪除多個(gè)元素
del是Python中用于從列表中刪除值的關(guān)鍵字。
#### Deleting all even a = [1,2,3,4,5] del a[1::2] print(a) >[1, 3, 5] a
▍5、讀取文件
lst = [line.strip() for line in open('data.txt')] print(lst)
這里我們使用列表來處理。
首先,我們打開一個(gè)文本文件,并使用for循環(huán),逐行讀取。 最后,使用strip刪除所有不必要的空間。
通過使用列表功能,使得代碼更簡單,更短。
list(open('data.txt')) ##Using with will also close the file after use with open("data.txt") as f: lst=[line.strip() for line in f] print(lst)
▍6、將數(shù)據(jù)寫入文件
with open("data.txt",'a',newline='\n') as f: f.write("Python is awsome")
上面的代碼首先創(chuàng)建一個(gè)文件data.txt(如果沒有的話),然后它會(huì)在文件中寫Python is awesome。
▍7、創(chuàng)建列表
lst = [i for i in range(0,10)] print(lst) > [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] or lst = list(range(0,10)) print(lst)
我們也可以使用相同的方法創(chuàng)建一個(gè)字符串列表。
lst = [("Hello "+i) for i in ['Karl','Abhay','Zen']] print(lst) > ['Hello Karl', 'Hello Abhay', 'Hello Zen']
▍8、映射列表或類型轉(zhuǎn)換整個(gè)列表
有時(shí)在我們的項(xiàng)目中,我們需要更改列表中所有元素的數(shù)據(jù)類型。你想到的第一個(gè)方法可能是使用循環(huán),然后訪問列表中的所有元素,然后一個(gè)接一個(gè)地更改元素的數(shù)據(jù)類型。
這個(gè)方法是老派的,在Python中我們有一個(gè)映射函數(shù),可以為我們做這些工作。
list(map(int,['1','2','3'])) > [1, 2, 3] list(map(float,[1,2,3])) > [1.0, 2.0, 3.0] [float(i) for i in [1,2,3]] > [1.0, 2.0, 3.0]
▍9、創(chuàng)建集合
我們用于創(chuàng)建列表的方法也可以用于創(chuàng)建集合。讓我們使用包含范圍內(nèi)所有偶數(shù)的平方根方法來創(chuàng)建一個(gè)集合。
#### Square of all even numbers in an range {x**2 for x in range(10) if x%2==0} > {0, 4, 16, 36, 64}
▍10、Fizz Buzz
在這個(gè)測試中,我們需要編寫一個(gè)程序來打印從1到20的數(shù)字。但如果是3的倍數(shù),打印Fizz,如果是5的倍數(shù),打印Buzz,如果同時(shí)是3和5的倍數(shù),打印FizzBuzz,否則打印數(shù)字。
看起來我們必須使用循環(huán)和多個(gè)if-else語句。如果你嘗試用其他語言來做,你可能需要寫10行代碼,但是使用Python,我們可以只用一行代碼就實(shí)現(xiàn)FizzBuzz。
['FizzBuzz' if i%3==0 and i%5==0 else 'Fizz' if i%3==0 else 'Buzz' if i%5==0 else i for i in range(1,20)]
在上面的代碼中,我們使用列表理解來運(yùn)行一個(gè)從1到20的循環(huán),然后在循環(huán)的每次迭代中,我們檢查數(shù)字是否能被3或5整除。如果是,那么我們用Fizz或Buzz替換數(shù)值,或者用FizzBuzz數(shù)值。
▍11、回文
回文是一個(gè)數(shù)字或字符串,當(dāng)它被反轉(zhuǎn)時(shí)看起來是一樣的。
text = 'level' ispalindrome = text == text[::-1] ispalindrome > True
▍12、用空格分隔的整數(shù)到一個(gè)列表
lis = list(map(int, input().split())) print(lis) > 1 2 3 4 5 6 7 8 [1, 2, 3, 4, 5, 6, 7, 8]
▍13、Lambda函數(shù)
lambda函數(shù)是一個(gè)小型匿名函數(shù)。lambda函數(shù)可以接受任意數(shù)量的參數(shù),但只能有一個(gè)表達(dá)式。
# Function that returns square of any number sqr = lambda x: x * x sqr(10) > 100
▍14、檢查列表中數(shù)字的存在
num = 5 if num in [1,2,3,4,5]: print('present') > present
▍15、打印圖案
在Python中,我們只需要一行代碼就可以繪制出令人驚嘆的圖案。
n = 5 print('\n'.join('?' * i for i in range(1, n + 1))) > ?????
▍16、查找階乘
階乘是一個(gè)整數(shù)和它下面所有整數(shù)的乘積。
import math n = 6 math.factorial(n) > 720
▍17、斐波納契數(shù)列
一組數(shù)字,其中每個(gè)數(shù)字(斐波那契數(shù))是前面兩個(gè)數(shù)字的和。最簡單的斐波那契數(shù)列1,1,2,3,5,8,13等等??梢允褂昧斜硗茖?dǎo)式和for循環(huán)在一個(gè)范圍內(nèi)創(chuàng)建斐波那契數(shù)列。
fibo = [0,1] [fibo.append(fibo[-2]+fibo[-1]) for i in range(5)] fibo > [0, 1, 1, 2, 3, 5, 8]
▍18、質(zhì)數(shù)
質(zhì)數(shù)是一個(gè)只能被自身和1整除的數(shù)。例如:2、3、5、7等。為了在一個(gè)范圍內(nèi)生成質(zhì)數(shù),我們可以使用帶有filter和lambda的list函數(shù)來生成質(zhì)數(shù)。
list(filter(lambda x:all(x % y != 0 for y in range(2, x)), range(2, 13))) > [2, 3, 5, 7, 11]
▍19、查找最大數(shù)值
findmax = lambda x,y: x if x > y else y findmax(5,14) > 14 or max(5,14)
在上面的代碼中,我們使用lambda函數(shù)檢查比較條件,并根據(jù)返回的最大值。
或者使用max()內(nèi)置函數(shù)。
▍20、線性代數(shù)
有時(shí)候我們需要將列表中的元素縮放2到5倍。下面的代碼解釋了如何做到這一點(diǎn)。
def scale(lst, x): return [i*x for i in lst] scale([2,3,4], 2) > [4,6,8]
▍21、矩陣轉(zhuǎn)置
您需要將所有行轉(zhuǎn)換為列,反之亦然。在Python中,可以使用zip函數(shù)在一行代碼中置換一個(gè)矩陣。
a=[[1,2,3], [4,5,6], [7,8,9]] transpose = [list(i) for i in zip(*a)] transpose > [[1, 4, 7], [2, 5, 8], [3, 6, 9]]
▍22、計(jì)數(shù)
當(dāng)我們需要知道某個(gè)值在文本中出現(xiàn)的次數(shù)時(shí),這是一個(gè)重要而有用的用例。在Python中,有re庫可以來幫你完成這項(xiàng)工作。
import re len(re.findall('python','python is a programming language. python is python.')) > 3
▍23、用其他文本替換文本
"python is a programming language.python is python".replace("python",'Java') > Java is a programming language. Java is Java
▍24、模擬拋硬幣
這可能不是那么重要,但當(dāng)你需要從一組給定的選擇中生成一些隨機(jī)選擇時(shí),它會(huì)非常有用。
import random random.choice(['Head',"Tail"]) > Head
▍25、生成組
groups = [(a, b) for a in ['a', 'b'] for b in [1, 2, 3]] groups > [('a', 1), ('a', 2), ('a', 3), ('b', 1), ('b', 2), ('b', 3)]
感謝各位的閱讀,以上就是“Python中常用的“一行代碼””的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對(duì)Python中常用的“一行代碼”這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!