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

15個Stack Overflow上回答的最多的Python技巧

開發(fā) 前端
Python是一種高級編程語言。由于其可讀性和效率,它已成為全球開發(fā)人員的熱門選擇。但是與任何語言一樣,有一些方法可以利用Python的特性來生成更干凈、更高效和更Python化的代碼。

Python是一種高級編程語言。由于其可讀性和效率,它已成為全球開發(fā)人員的熱門選擇。但是與任何語言一樣,有一些方法可以利用Python的特性來生成更干凈、更高效和更Python化的代碼。

本文將整理15個Python技巧,這些技巧都是Stack Overflow上回答最多的問題,并且可以幫你提高代碼質(zhì)量。

1、F-Strings

在Python 3.6中引入的F-Strings提供了一種簡潔方便的方式來將表達式嵌入字符串中進行格式化。它比% formatting和str.format()都快并且更易讀,所以推薦使用它。

以下是如何使用它們的方法:

name = "John"
 age = 24
 
 print(f"My name is {name} and I'm {age} years old.")
 
 Output:
 My name is John and I'm 24 years old.

2、列表推導式

當您希望基于現(xiàn)有列表的值創(chuàng)建新列表時,列表推導式提供了更短的語法。它可以使代碼更具可讀性和效率。

例如:

numbers = [1, 2, 3, 4, 5]
 
 #List comprehension
 squares = [n**2 for n in numbers]
 
 print(squares)
 
 Output:
 [1, 4, 9, 16, 25]

3、鏈式比較運算符

Python允許鏈式比較運算符,這可以使代碼更具可讀性和整潔性。

例如:

#Chain comparison
 x = 10
 print(1 < x < 20)  
 
 # Output: 
 True

4、enumerate

當我們同時需要列表項的索引和值時,可以使用enumerate()函數(shù),而不是創(chuàng)建一個單獨的變量。

例如:

fruits = ["apple", "banana", "cherry"]
 
 for i, fruit in enumerate(fruits):
    print(f"Index: {i}, Fruit: {fruit}")
 
 
 # Output:
 Index: 0, Fruit: apple
 Index: 1, Fruit: banana
 Index: 2, Fruit: cherry

5、zip

zip()函數(shù)可以同時遍歷多個列表,這在處理相同長度的列表時非常方便。

list1 = [1, 2, 3]
 list2 = ['a', 'b', 'c']
 
 for num, letter in zip(list1, list2):
    print(f"Number: {num}, Letter: {letter}")
 
 # Output:
 Number: 1, Letter: a
 Number: 2, Letter: b
 Number: 3, Letter: c

6、在循環(huán)中使用else子句

在Python中,else子句可以與循環(huán)一起使用。else塊中的代碼在循環(huán)結(jié)束后執(zhí)行,除非循環(huán)被break語句終止。

for i in range(5):
    if i == 10:
        break
 else:
    print("Loop finished successfully.")
 
 # Output:
 Loop finished successfully.

7、defaultdict

Python中的defaultdict是一個容器,它為不存在的鍵提供默認值,這可以避免KeyError。

from collections import defaultdict
 d = defaultdict(int)
 
 print(d["nonexistent_key"])  
 
 # Output: 
 0

8、使用set

Python中的集合以哈希表的形式實現(xiàn),這為成員測試提供了恒定的時間復雜度。如果需要測試一個項是否存在于一個大型項目集合中,可以使用集合替代列表。

items = set([1, 2, 3, 4, 5])
 print(3 in items)  
 
 # Output: 
 True

9、' name == " main " '

在python中,這行代碼確保在python文件作為腳本運行時運行代碼的某些部分,而不是在它作為模塊導入時運行。

if __name__ == "__main__":
    print("This code runs when the file is executed as a script.")

尤其是在windows下的多線程一定要加上這句話,比如pytorch的dataloader的num_worker大于1的話大概率的報錯來自于沒加這句話

10、使用*args和**kwargs

*args和**kwargs可以讓函數(shù)傳遞可變數(shù)量的參數(shù)。*args用于傳遞非關鍵字參數(shù),而**kwargs用于傳遞關鍵字參數(shù)。

def func(*args, **kwargs):
    for arg in args:
        print(arg)
    for key, value in kwargs.items():
        print(f"{key}: {value}")
 
 func(1, 2, 3, a=4, b=5)
 
 
 # Output:
 1
 2
 3
 a: 4
 b: 5

11、try/except/else/finally

Python的try/except/else/finally結(jié)構允許捕獲和處理異常,在沒有異常發(fā)生時執(zhí)行代碼,并且不管是否發(fā)生異常都可以清理資源。

try:
    # Code that may raise an exception
 except Exception as e:
    # Code that runs when an exception occurs
 else:
    # Code that runs if no exception occurs
 finally:
    # Code that runs no matter what

這里的else的用法與循環(huán)中類似,在某些特殊的情況下非常有用

12、使用列表切片

Python中的列表切片可以訪問列表項的子集。還可以使用它來反轉(zhuǎn)列表或克隆列表。

numbers = [1, 2, 3, 4, 5]
 
 print(numbers[1:3])
 print(numbers[::-1])  
 
 # Output: 
 [2, 3]
 [5, 4, 3, 2, 1]

13、使用' isinstance() '進行類型檢查

在Python中,isinstance()函數(shù)檢查一個對象是某個類的實例還是類的元組。

print(isinstance(1, int))  
 
 # Output: 
 True

14、使用any()和all()

如果可迭代對象中至少有一個元素為真,則any()函數(shù)返回True,而all()僅當所有元素為真時返回True。

numbers = [1, 2, 3, 0]
 
 print(any(numbers))  
 print(all(numbers))  
 
 # Output: 
 True
 False

15、collections.Counter

Python中的collections模塊提供了內(nèi)置容器的替代方案。Counter是一個dict子類,用于對可哈希對象進行計數(shù)。它是一個集合,其中元素被存儲為字典鍵,它們的計數(shù)被存儲為字典值。

from collections import Counter
 
 # list of students in class 'A'
 students = ['Mike', 'John', 'Mike', 'Anna', 'John', 'John']
 counter = Counter(students)
 
 print(counter)
 
 # Output:
 Counter({'John': 3, 'Mike': 2, 'Anna': 1})

上面的代碼是計算列表中元素出現(xiàn)頻率的一種簡單而有效的方法。

總結(jié)

Python是一種強大而靈活的語言,它提供了許多特性和技巧。通過利用這些特性可以編寫更簡潔、更python化的代碼,并將自己從無數(shù)的Stack Overflow搜索中拯救出來,提高Python技能的最好方法是編寫Python代碼。

責任編輯:華軒 來源: DeepHub IMBA
相關推薦

2023-07-12 15:50:02

Python編程語言開發(fā)

2023-07-28 14:39:37

StackOverflowAI

2023-11-26 17:54:07

JavaScript開發(fā)

2022-12-22 14:44:06

JavaScript技巧

2022-12-25 16:03:31

JavaScript技巧

2024-05-28 09:26:42

2020-12-03 10:47:39

macOS

2024-01-22 13:16:00

接口性能優(yōu)化本地緩存

2020-12-02 10:49:32

macOS漏洞惡意軟件

2022-10-09 13:36:44

接口性能優(yōu)化

2021-06-18 12:53:31

Stack Overf區(qū)塊鏈比特幣

2024-09-11 16:30:55

Python函數(shù)編程

2024-05-28 07:33:52

SFOpenAI賬戶

2014-03-11 11:04:30

2021-11-10 18:52:42

SQL技巧優(yōu)化

2015-01-14 10:26:30

JavaScript編程技巧

2022-09-05 14:17:48

Javascript技巧

2023-04-23 15:11:26

2022-04-02 09:56:44

pipPython

2020-08-28 09:50:12

Java程序員語言
點贊
收藏

51CTO技術棧公眾號