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

15個(gè)Stack Overflow上回答的最多的Python技巧

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

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

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

1、F-Strings

在Python 3.6中引入的F-Strings提供了一種簡(jiǎn)潔方便的方式來將表達(dá)式嵌入字符串中進(jìn)行格式化。它比% 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、列表推導(dǎo)式

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

例如:

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

3、鏈?zhǔn)奖容^運(yùn)算符

Python允許鏈?zhǔn)奖容^運(yùn)算符,這可以使代碼更具可讀性和整潔性。

例如:

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

4、enumerate

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

例如:

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ù)可以同時(shí)遍歷多個(gè)列表,這在處理相同長(zhǎng)度的列表時(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是一個(gè)容器,它為不存在的鍵提供默認(rèn)值,這可以避免KeyError。

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

8、使用set

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

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

9、' name == " main " '

在python中,這行代碼確保在python文件作為腳本運(yùn)行時(shí)運(yùn)行代碼的某些部分,而不是在它作為模塊導(dǎo)入時(shí)運(yùn)行。

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

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

10、使用*args和**kwargs

*args和**kwargs可以讓函數(shù)傳遞可變數(shù)量的參數(shù)。*args用于傳遞非關(guān)鍵字參數(shù),而**kwargs用于傳遞關(guān)鍵字參數(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é)構(gòu)允許捕獲和處理異常,在沒有異常發(fā)生時(shí)執(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中的列表切片可以訪問列表項(xiàng)的子集。還可以使用它來反轉(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() '進(jìn)行類型檢查

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

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

14、使用any()和all()

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

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

15、collections.Counter

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

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

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

總結(jié)

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

責(zé)任編輯:華軒 來源: DeepHub IMBA
相關(guān)推薦

2023-07-13 15:13:47

Python編程語言

2023-11-26 17:54:07

JavaScript開發(fā)

2023-07-28 14:39:37

StackOverflowAI

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

2024-09-11 16:30:55

Python函數(shù)編程

2021-06-18 12:53:31

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

2014-03-11 11:04:30

2024-05-28 07:33:52

SFOpenAI賬戶

2015-01-14 10:26:30

JavaScript編程技巧

2021-11-10 18:52:42

SQL技巧優(yōu)化

2022-04-02 09:56:44

pipPython

2022-09-05 14:17:48

Javascript技巧

2023-04-23 15:11:26

2020-08-28 09:50:12

Java程序員語言
點(diǎn)贊
收藏

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