網站首頁 編程語言 正文
1. 引言
小伙伴們日常工作中都必不可少地使用Python實現一些簡單的功能,但是不同的人所編寫的代碼執行效率往往是不同的。本文重點介紹大家經常遇到的場景下,三個有效的,方便理解的,執行高效的實用技巧。
閑話少說,我們直接開始吧!!!
2. 獲取字典的值
不妨假設我們有以下字典:
my_dict = {'first_name': 'Michaela', ? ? ? ? ? ?'last_name': 'Kraushaar', ? ? ? ? ? ?'age': 36, ? ? ? ? ? ?'job': 'Pfleger', ? ? ? ? ? ?'country': 'Antarktis'}
一般來說,我們可以直接使用方括號來從字典中獲取每個鍵所對應的值,比如使用my_dict['country']
即可獲取country所對應的值Antarktis
。但是,如果我們的鍵值在字典中不存在呢?我們往往會遇到以下錯誤:
上圖中,我們嘗試獲取鍵city所對應的值,此時由于city不存在,我們將會拋出KeyError
的異常,將終止我們代碼的執行。
當然,我們可以添加try-catch
語句來捕捉相應的異常,但是我們可以有更好的選擇,那就是使用內置函數.get(),代碼如下:
可以看出,使用get()內置函數執行效率更高,同時如果鍵不存在時,并不會觸發異常,而是會返回None,如下所示:
初次之外,內置函數get()還可以傳入額外的輸出信息,如果鍵不存在時,樣例如下:
建議:
盡量使用get()
函數來代替方括號來獲取字典中某個鍵的值
3. 循環中使用enumerate
通常,我們需要迭代循環一個范圍,比如list
、dictionary
,同時還需要處理每個元素所對應的索引。
按照之前c/c++的經驗,大多數人往往傾向于在循環中使用range
(len(iterable))來進行遍歷,但是這里更推薦使用enumerate
(iterable),因為這種方式往往更加高效。
對比如下:
上述兩種實現,雖然結果一樣,但是enumerate
(iterable)明顯更加方便易讀。除此之外,我們還可以自行決定,index下標開始的數值,如下所示:
更進一步地,使用函數enumerate
(iterable),可以方便地產生下標和元素組合的元組,代碼如下:
建議:
盡量使用enumerate()函數來遍歷可迭代對象中的元素
4. 使用f-strings來拼接和打印字符串
格式化輸出可以使用函數format()。它允許使用簡單的占位符進行格式化。
一般來說,f-strings
在需要格式化的字符串的開頭有一個字母f,同時在字符串中有多個占位符{}。
如下所示:
5. 總結
本文介紹了日常工作中常用的三個小技巧,這些小技巧都是工作中很小的細節,但是使用它們可以讓我們編寫的代碼更加簡潔、方便修改和高效運行。
原文鏈接:https://blog.csdn.net/sgzqc/article/details/123768298
相關推薦
- 2022-12-30 React高階組件使用教程詳解_React
- 2024-04-04 springboot整合mongodb批量修改和添加索引,與設置mongodb保存更新超時時間
- 2022-04-12 C#實現六大設計原則之單一職責原則_C#教程
- 2022-06-10 Python?Pytorch學習之圖像檢索實踐_python
- 2022-08-03 C++實現圖像目標區裁剪ImageCropping_C 語言
- 2022-03-31 解決Android加殼過程中mprotect調用失敗的原因分析_Android
- 2023-12-09 【設計模式-3.1】結構型——外觀模式
- 2022-04-21 Tomcat中catalina.out?和?catalina.log的區別和用途詳解_Tomcat
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支