25條實用的Python一行程式碼,你用過哪些?

大家好,歡迎來到 Crossin的程式設計教室 !

自從我用Python編寫第一行程式碼以來,就被它的簡單性、出色的可讀性和特別流行的一行程式碼所吸引。

在下面,我將給大家介紹並解釋一些非常實用Python一行程式。

可能有些你還不知道,但對你未來的Python專案很有用。

▍1、交換兩個變數

# a = 4 b = 5

a,b = b,a

# print(a,b) >> 5,4

讓我們透過交換兩個變數作為一個簡單的開始。

此方法是最簡單、最直觀的方法之一,無需使用臨時變數或應用算術操作即可編寫。

▍2、多個變數賦值

a,b,c = 4,5。5,‘Hello’

#print(a,b,c) >> 4,5。5,hello

你可以使用逗號和變數一次性將多個值分配給變數。使用此技術,你可以一次分配多個數據型別。

你可以使用列表將值分配給變數。下面是將列表中的多個值分配給變數的示例。

a,b,*c = [1,2,3,4,5]

print(a,b,c)

> 1 2 [3,4,5]

▍3、列表中偶數的和

有很多方法可以做到這一點,但最好和最簡單的方法是使用列表索引和sum函式。

a = [1,2,3,4,5,6]

s = sum([num for num in a if num%2 == ])

print(s)

>> 12

▍4、從列表中刪除多個元素

del是Python中用於從列表中刪除值的關鍵字。

#### 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)

這裡我們使用列表來處理。

首先,我們開啟一個文字檔案,並使用for迴圈,逐行讀取。 最後,使用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、將資料寫入檔案

with open(“data。txt”,‘a’,newline=‘\n’) as f:

f。write(“Python is awsome”)

上面的程式碼首先建立一個檔案data。txt(如果沒有的話),然後它會在檔案中寫Python is awesome。

▍7、建立列表

lst = [i for i in range(,10)]

print(lst)

> [, 1, 2, 3, 4, 5, 6, 7, 8, 9]

or

lst = list(range(,10))

print(lst)

我們也可以使用相同的方法建立一個字串列表。

lst = [(“Hello ”+i) for i in [‘Karl’,‘Abhay’,‘Zen’]]

print(lst)

> [‘Hello Karl’, ‘Hello Abhay’, ‘Hello Zen’]

▍8、對映列表或型別轉換整個列表

有時在我們的專案中,我們需要更改列表中所有元素的資料型別。你想到的第一個方法可能是使用迴圈,然後訪問列表中的所有元素,然後一個接一個地更改元素的資料型別。

這個方法是老派的,在Python中我們有一個對映函式,可以為我們做這些工作。

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、建立集合

我們用於建立列表的方法也可以用於建立集合。讓我們使用包含範圍內所有偶數的平方根方法來建立一個集合。

#### Square of all even numbers in an range

> {, 4, 16, 36, 64}

▍10、Fizz Buzz

在這個測試中,我們需要編寫一個程式來列印從1到20的數字。但如果是3的倍數,列印Fizz,如果是5的倍數,列印Buzz,如果同時是3和5的倍數,列印FizzBuzz,否則列印數字。

看起來我們必須使用迴圈和多個if-else語句。如果你嘗試用其他語言來做,你可能需要寫10行程式碼,但是使用Python,我們可以只用一行程式碼就實現FizzBuzz。

[‘FizzBuzz’ if i%3== and i%5==

else ‘Fizz’ if i%3==

else ‘Buzz’ if i%5==

else i  for i in range(1,20)]

在上面的程式碼中,我們使用列表理解來執行一個從1到20的迴圈,然後在迴圈的每次迭代中,我們檢查數字是否能被3或5整除。如果是,那麼我們用Fizz或Buzz替換數值,或者用FizzBuzz數值。

▍11、迴文

迴文是一個數字或字串,當它被反轉時看起來是一樣的。

text = ‘level’

ispalindrome = text == text[::-1]

ispalindrome

> True

▍12、用空格分隔的整數到一個列表

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函式

lambda函式是一個小型匿名函式。lambda函式可以接受任意數量的引數,但只能有一個表示式。

# Function that returns square of any number

sqr = lambda x: x * x

sqr(10)

> 100

▍14、檢查列表中數字的存在

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、查詢階乘

階乘是一個整數和它下面所有整數的乘積。

import math

n = 6

math。factorial(n)

> 720

▍17、斐波納契數列

一組數字,其中每個數字(斐波那契數)是前面兩個數字的和。最簡單的斐波那契數列1,1,2,3,5,8,13等等。可以使用列表推導式和for迴圈在一個範圍內建立斐波那契數列。

fibo = [,1]

[fibo。append(fibo[-2]+fibo[-1]) for i in range(5)]

fibo

> [, 1, 1, 2, 3, 5, 8]

▍18、質數

質數是一個只能被自身和1整除的數。例如:2、3、5、7等。為了在一個範圍內生成質數,我們可以使用帶有filter和lambda的list函式來生成質數。

list(filter(lambda x:all(x % y !=  for y in range(2, x)), range(2, 13)))

> [2, 3, 5, 7, 11]

▍19、查詢最大數值

findmax = lambda x,y: x if x > y else y

findmax(5,14)

> 14

or

max(5,14)

在上面的程式碼中,我們使用lambda函式檢查比較條件,並根據返回的最大值。

或者使用max()內建函式。

▍20、線性代數

有時候我們需要將列表中的元素縮放2到5倍。下面的程式碼解釋瞭如何做到這一點。

def scale(lst, x):

return [i*x for i in lst]

scale([2,3,4], 2)

> [4,6,8]

▍21、矩陣轉置

您需要將所有行轉換為列,反之亦然。在Python中,可以使用zip函式在一行程式碼中置換一個矩陣。

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、計數

當我們需要知道某個值在文字中出現的次數時,這是一個重要而有用的用例。在Python中,有re庫可以來幫你完成這項工作。

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、模擬拋硬幣

這可能不是那麼重要,但當你需要從一組給定的選擇中生成一些隨機選擇時,它會非常有用。

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)]

以上就是今天分享的25條一行程式碼,你還用過哪些有用的單行程式碼?歡迎在留言中討論。

TAG: 列表printPythonlstlist