Python中那些簡(jiǎn)單又好用的特性和用法盤點(diǎn)
Python作為我的主力語(yǔ)言幫助我開發(fā)了許多DevOps運(yùn)維自動(dòng)化系統(tǒng),這篇文章總結(jié)幾個(gè)我在編寫Python代碼過(guò)程中用到的幾個(gè)簡(jiǎn)單又好用的特性和用法,這些特性和用法可以幫助我們更高效地編寫Python代碼
1.鏈?zhǔn)奖容^
x = 5 y = 10 z = 15 if x < y < z: print("x is less than y and y is less than z")
2.鏈?zhǔn)劫x值
total_regions = region_total_instances = total_instances = 0
3.三元運(yùn)算符
x = 10 result = "Greater than 10" if x > 10 else "Less than or equal to 10"
4.使用args和kwargs傳遞多個(gè)位置參數(shù)或關(guān)鍵字參數(shù)給函數(shù)
def example_function(*args, **kwargs): for arg in args: # 執(zhí)行相關(guān)操作 for key, value in kwargs.items(): # 執(zhí)行相關(guān)操作
5.使用enumerate函數(shù)同時(shí)獲取索引和值
my_list = ['apple', 'banana', 'orange'] for index, value in enumerate(my_list): print(f"Index: {index}, Value: {value}")
6.使用zip函數(shù)同時(shí)迭代多個(gè)可迭代對(duì)象
list1 = [1, 2, 3] list2 = ['a', 'b', 'c'] for item1, item2 in zip(list1, list2): print(f"Item from list1: {item1}, Item from list2: {item2}")
7.使用itertools模塊進(jìn)行迭代器和循環(huán)的高級(jí)操作
import itertools for item in itertools.chain([1, 2, 3], ['a', 'b', 'c']): print(item)
8.使用collections.Counter進(jìn)行計(jì)數(shù)
from collections import Counter my_list = ['apple', 'banana', 'apple', 'orange', 'banana', 'apple'] counter = Counter(my_list) print(counter) # 輸出為Counter({'apple': 3, 'banana': 2, 'orange': 1})
9.使用any和all函數(shù)對(duì)可迭代對(duì)象中的元素進(jìn)行邏輯判斷
my_list = [True, False, True, True] print(any(my_list)) # 輸出為True print(all(my_list)) # 輸出為False
10.使用sorted函數(shù)對(duì)可迭代對(duì)象進(jìn)行排序
my_list = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5] sorted_list = sorted(my_list) print(sorted_list) # 輸出為[1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]
11.使用set進(jìn)行集合操作
set1 = {1, 2, 3, 4, 5} set2 = {3, 4, 5, 6, 7} print(set1.union(set2)) # 輸出為{1, 2, 3, 4, 5, 6, 7} print(set1.intersection(set2)) # 輸出為{3, 4, 5}
12.上下文管理器
class CustomContextManager: def __enter__(self): # 在代碼塊執(zhí)行之前執(zhí)行的操作 # 可以返回一個(gè)值,該值將被賦值給as子句中的變量 def __exit__(self, exc_type, exc_val, exc_tb): # 在代碼塊執(zhí)行之后執(zhí)行的操作 # 可以處理異常,返回True表示異常被處理,F(xiàn)alse則會(huì)重新拋出異常 # 使用自定義上下文管理器 with CustomContextManager() as obj: # 在這里執(zhí)行一些操作
13.生成器表達(dá)式
# 使用生成器表達(dá)式計(jì)算1到10的平方和 squared_sum = sum(x**2 for x in range(1, 11)) print(squared_sum)
14.使用str.endswith()方法來(lái)檢查字符串是否以元組中的任何一個(gè)字符串結(jié)尾
filename = "example.csv" if filename.endswith((".csv", ".xls", ".xlsx")): # 執(zhí)行相關(guān)操作
同樣的用法還有str.startswith()
來(lái)檢查字符串是否以元組中的任何一個(gè)字符串開頭
15.else語(yǔ)句與for和while循環(huán)結(jié)合使用
for item in some_list: if condition: # 執(zhí)行相關(guān)操作 break else: # 如果循環(huán)自然結(jié)束,執(zhí)行相關(guān)操作
16.靜態(tài)類型檢查
# 使用mypy進(jìn)行靜態(tài)類型檢查 def add_numbers(a: int, b: int) -> int: return a + b result = add_numbers(5, 10) print(result)
先總結(jié)這么多,歡迎補(bǔ)充
到此這篇關(guān)于Python中那些簡(jiǎn)單又好用的特性和用法盤點(diǎn)的文章就介紹到這了,更多相關(guān)Python特性和用法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python使用WebSocket和SSE實(shí)現(xiàn)HTTP服務(wù)器消息推送方式
本文介紹了兩種實(shí)時(shí)數(shù)據(jù)獲取的技術(shù):WebSocket和SSE,WebSocket是全雙工通信協(xié)議,支持雙向通信,但需要專門定義數(shù)據(jù)協(xié)議,SSE是一種單工通信技術(shù),基于HTTP的流式數(shù)據(jù)傳輸,客戶端開發(fā)簡(jiǎn)單,但只能單工通信2024-11-11Python 進(jìn)程操作之進(jìn)程間通過(guò)隊(duì)列共享數(shù)據(jù),隊(duì)列Queue簡(jiǎn)單示例
這篇文章主要介紹了Python 進(jìn)程操作之進(jìn)程間通過(guò)隊(duì)列共享數(shù)據(jù),隊(duì)列Queue,結(jié)合實(shí)例形式分析了Python進(jìn)程數(shù)據(jù)共享、隊(duì)列數(shù)據(jù)處理相關(guān)操作技巧,需要的朋友可以參考下2019-10-10python基礎(chǔ)之while循環(huán)、for循環(huán)詳解及舉例
所謂循環(huán)結(jié)構(gòu)就是程序中控制某條或某些指令重復(fù)執(zhí)行的結(jié)構(gòu),下面這篇文章主要給大家介紹了關(guān)于python基礎(chǔ)之while循環(huán)、for循環(huán)的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-04-04基于anaconda下強(qiáng)大的conda命令介紹
今天小編就為大家分享一篇基于anaconda下強(qiáng)大的conda命令介紹,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-06-06Python中g(shù)etpass模塊無(wú)回顯輸入源碼解析
這篇文章主要介紹了Python中g(shù)etpass模塊無(wú)回顯輸入源碼解析,具有一定借鑒價(jià)值,需要的朋友可以參考下2018-01-01django組合搜索實(shí)現(xiàn)過(guò)程詳解(附代碼)
這篇文章主要介紹了django組合搜索實(shí)現(xiàn)過(guò)程詳解(附代碼),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08Python爬蟲入門案例之回車桌面壁紙網(wǎng)美女圖片采集
讀萬(wàn)卷書不如行萬(wàn)里路,學(xué)的扎不扎實(shí)要通過(guò)實(shí)戰(zhàn)才能看出來(lái),今天小編給大家?guī)?lái)一個(gè)python爬蟲案例,采集回車桌面網(wǎng)站的美女圖片,大家可以在過(guò)程中查缺補(bǔ)漏,看看自己掌握程度怎么樣2021-10-10如何向scrapy中的spider傳遞參數(shù)的幾種方法
這篇文章主要介紹了如何向scrapy中的spider傳遞參數(shù)的幾種方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11