自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

25條很棒的Python一行代碼,建議收藏!

開(kāi)發(fā) 后端
自從我用Python編寫(xiě)第一行代碼以來(lái),就被它的簡(jiǎn)單性、出色的可讀性和特別流行的一行代碼所吸引。在下面,我將給大家介紹并解釋一些Python一行程序。

 [[378055]]

自從我用Python編寫(xiě)第一行代碼以來(lái),就被它的簡(jiǎn)單性、出色的可讀性和特別流行的一行代碼所吸引。

在下面,我將給大家介紹并解釋一些Python一行程序。

可能有些你還不知道,但對(duì)你未來(lái)的Python項(xiàng)目很有用。

▍1、交換兩個(gè)變量 

  1. a = 4 b = 5  
  2. a,bb = b,a  
  3. # print(a,b) >> 5,4 

讓我們通過(guò)交換兩個(gè)變量作為一個(gè)簡(jiǎn)單的開(kāi)始。

此方法是最簡(jiǎn)單、最直觀的方法之一,無(wú)需使用臨時(shí)變量或應(yīng)用算術(shù)操作即可編寫(xiě)。

2、多個(gè)變量賦值 

  1. a,b,c = 4,5.5,'Hello'  
  2. #print(a,b,c) >> 4,5.5,hello 

你可以使用逗號(hào)和變量一次性將多個(gè)值分配給變量。使用此技術(shù),你可以一次分配多個(gè)數(shù)據(jù)類型。 

你可以使用列表將值分配給變量。下面是將列表中的多個(gè)值分配給變量的示例。 

  1. a,b,*c = [1,2,3,4,5]  
  2. print(a,b,c)  
  3. > 1 2 [3,4,5] 

3、列表中偶數(shù)的和

有很多方法可以做到這一點(diǎn),但最好和最簡(jiǎn)單的方法是使用列表索引和sum函數(shù)。 

  1. a = [1,2,3,4,5,6]  
  2. s = sum([num for num in a if num%2 == 0])  
  3. print(s)  
  4. >> 12 

4、從列表中刪除多個(gè)元素

del是Python中用于從列表中刪除值的關(guān)鍵字。 

  1. #### Deleting all even  
  2. a = [1,2,3,4,5]  
  3. del a[1::2]  
  4. print(a)  
  5. >[1, 3, 5]  

5、讀取文件 

  1. lst = [line.strip() for line in open('data.txt')]  
  2. print(lst) 

這里我們使用列表來(lái)處理。

首先,我們打開(kāi)一個(gè)文本文件,并使用for循環(huán),逐行讀取。 最后,使用strip刪除所有不必要的空間。 

通過(guò)使用列表功能,使得代碼更簡(jiǎn)單,更短。 

  1. list(open('data.txt'))  
  2. ##Using with will also close the file after use  
  3. with open("data.txt") as f:  
  4.     lst=[line.strip() for line in f]  
  5. print(lst) 

6、將數(shù)據(jù)寫(xiě)入文件 

  1. with open("data.txt",'a',newline='\n') as f:   
  2.     f.write("Python is awsome") 

上面的代碼首先創(chuàng)建一個(gè)文件data.txt(如果沒(méi)有的話),然后它會(huì)在文件中寫(xiě)Python is awesome。

7、創(chuàng)建列表 

  1. lst = [i for i in range(0,10)]  
  2. print(lst)  
  3. > [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]  
  4. or  
  5. lst = list(range(0,10))  
  6. print(lst) 

我們也可以使用相同的方法創(chuàng)建一個(gè)字符串列表。 

  1. lst = [("Hello "+i) for i in ['Karl','Abhay','Zen']]  
  2. print(lst)  
  3. > ['Hello Karl', 'Hello Abhay', 'Hello Zen'] 

8、映射列表或類型轉(zhuǎn)換整個(gè)列表

有時(shí)在我們的項(xiàng)目中,我們需要更改列表中所有元素的數(shù)據(jù)類型。你想到的第一個(gè)方法可能是使用循環(huán),然后訪問(wèn)列表中的所有元素,然后一個(gè)接一個(gè)地更改元素的數(shù)據(jù)類型。

這個(gè)方法是老派的,在Python中我們有一個(gè)映射函數(shù),可以為我們做這些工作。 

  1. list(map(int,['1','2','3']))  
  2. > [1, 2, 3]  
  3. list(map(float,[1,2,3]))  
  4. > [1.0, 2.0, 3.0]  
  5. [float(i) for i in [1,2,3]]  
  6. > [1.0, 2.0, 3.0] 

9、創(chuàng)建集合

我們用于創(chuàng)建列表的方法也可以用于創(chuàng)建集合。讓我們使用包含范圍內(nèi)所有偶數(shù)的平方根方法來(lái)創(chuàng)建一個(gè)集合。 

  1. #### Square of all even numbers in an range  
  2. {x**2 for x in range(10) if x%2==0}  
  3. > {0, 4, 16, 36, 64} 

▍10、Fizz Buzz

在這個(gè)測(cè)試中,我們需要編寫(xiě)一個(gè)程序來(lái)打印從1到20的數(shù)字。但如果是3的倍數(shù),打印Fizz,如果是5的倍數(shù),打印Buzz,如果同時(shí)是3和5的倍數(shù),打印FizzBuzz,否則打印數(shù)字。

看起來(lái)我們必須使用循環(huán)和多個(gè)if-else語(yǔ)句。如果你嘗試用其他語(yǔ)言來(lái)做,你可能需要寫(xiě)10行代碼,但是使用Python,我們可以只用一行代碼就實(shí)現(xiàn)FizzBuzz。 

  1. ['FizzBuzz' if i%3==0 and i%5==0  
  2.     else 'Fizz' if i%3==0   
  3.     else 'Buzz' if i%5==0   
  4.     else i  for i in range(1,20)] 

在上面的代碼中,我們使用列表理解來(lái)運(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í)看起來(lái)是一樣的。 

  1. text = 'level'  
  2. ispalindrome = text == text[::-1]  
  3. ispalindrome  
  4. > True 

12、用空格分隔的整數(shù)到一個(gè)列表 

  1. lis = list(map(int, input().split()))  
  2. print(lis)  
  3. > 1 2 3 4 5 6 7 8  
  4. [1, 2, 3, 4, 5, 6, 7, 8] 

13、Lambda函數(shù)

lambda函數(shù)是一個(gè)小型匿名函數(shù)。lambda函數(shù)可以接受任意數(shù)量的參數(shù),但只能有一個(gè)表達(dá)式。 

  1. # Function that returns square of any number  
  2. sqr = lambda x: x * x  
  3. sqr(10)  
  4. > 100 

14、檢查列表中數(shù)字的存在 

  1. num = 5  
  2. if num in [1,2,3,4,5]:  
  3.      print('present')  
  4. > present   

15、打印圖案

在Python中,我們只需要一行代碼就可以繪制出令人驚嘆的圖案。 

  1. n = 5  
  2. print('\n'.join('😀' * i for i in range(1, n + 1)))  
  3. > 😀😀😀😀😀  

16、查找階乘

階乘是一個(gè)整數(shù)和它下面所有整數(shù)的乘積。 

  1. import math  
  2. n = 6  
  3. math.factorial(n)  
  4. > 720   

17、斐波納契數(shù)列

一組數(shù)字,其中每個(gè)數(shù)字(斐波那契數(shù))是前面兩個(gè)數(shù)字的和。最簡(jiǎn)單的斐波那契數(shù)列1,1,2,3,5,8,13等等。可以使用列表推導(dǎo)式和for循環(huán)在一個(gè)范圍內(nèi)創(chuàng)建斐波那契數(shù)列。 

  1. fibo = [0,1]  
  2. [fibo.append(fibo[-2]+fibo[-1]) for i in range(5)]  
  3. fibo  
  4. > [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ù)來(lái)生成質(zhì)數(shù)。 

  1. list(filter(lambda x:all(x % y != 0 for y in range(2, x)), range(2, 13)))  
  2. > [2, 3, 5, 7, 11]   

19、查找最大數(shù)值 

  1. findmax = lambda x,y: x if x > y else y   
  2. findmax(5,14)  
  3. > 14  
  4. or   
  5. max(5,14)   

在上面的代碼中,我們使用lambda函數(shù)檢查比較條件,并根據(jù)返回的最大值。

或者使用max()內(nèi)置函數(shù)。

20、線性代數(shù)

有時(shí)候我們需要將列表中的元素縮放2到5倍。下面的代碼解釋了如何做到這一點(diǎn)。 

  1. def scale(lst, x):  
  2.     return [i*x for i in lst]   
  3. scale([2,3,4], 2)  
  4. > [4,6,8]   

21、矩陣轉(zhuǎn)置

您需要將所有行轉(zhuǎn)換為列,反之亦然。在Python中,可以使用zip函數(shù)在一行代碼中置換一個(gè)矩陣。 

  1. a=[[1,2,3],  
  2.    [4,5,6],  
  3.    [7,8,9]]  
  4.  transpose = [list(i) for i in zip(*a)]   
  5. transpose  
  6. > [[1, 4, 7], [2, 5, 8], [3, 6, 9]] 

22、計(jì)數(shù)

當(dāng)我們需要知道某個(gè)值在文本中出現(xiàn)的次數(shù)時(shí),這是一個(gè)重要而有用的用例。在Python中,有re庫(kù)可以來(lái)幫你完成這項(xiàng)工作。 

  1. import re  
  2. len(re.findall('python','python is a programming language. python is python.'))  
  3. > 3 

23、用其他文本替換文本 

  1. "python is a programming language.python is python".replace("python",'Java')  
  2. > Java is a programming language. Java is Java 

24、模擬拋硬幣

這可能不是那么重要,但當(dāng)你需要從一組給定的選擇中生成一些隨機(jī)選擇時(shí),它會(huì)非常有用。 

  1. import random  
  2. random.choice(['Head',"Tail"])  
  3. > Head 

25、生成組 

  1. groups = [(a, b) for a in ['a', 'b'] for b in [1, 2, 3]]   
  2. groups  
  3. > [('a', 1), ('a', 2), ('a', 3), ('b', 1), ('b', 2), ('b', 3)]  

 

責(zé)任編輯:龐桂玉 來(lái)源: Python之禪
相關(guān)推薦

2020-08-12 14:54:00

Python代碼開(kāi)發(fā)

2016-12-02 08:53:18

Python一行代碼

2021-02-24 14:30:59

JavaScript語(yǔ)言開(kāi)發(fā)

2021-11-02 16:25:41

Python代碼技巧

2022-04-09 09:11:33

Python

2020-05-13 13:55:16

MatplotlibPython代碼

2020-08-19 10:30:25

代碼Python多線程

2017-04-13 19:20:18

Python代碼并行任務(wù)

2017-04-05 11:10:23

Javascript代碼前端

2020-09-28 12:34:38

Python代碼開(kāi)發(fā)

2021-09-27 10:52:06

React工具庫(kù)開(kāi)發(fā)

2022-02-23 14:37:48

代碼Pythonbug

2014-02-12 13:43:50

代碼并行任務(wù)

2022-09-28 10:12:50

Python代碼可視化

2020-01-10 22:56:56

Python圖像處理Linux

2024-05-31 13:14:05

2021-07-25 22:43:39

Python代碼開(kāi)發(fā)

2021-07-01 15:40:05

Python代碼Geopandas

2024-09-26 15:46:54

Python編程

2020-09-09 16:00:22

Linux進(jìn)程
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)