網站首頁 編程語言 正文
自從我用 Python 編寫第一行代碼以來,我就被它的簡單性、出色的可讀性和流行的單行代碼所吸引。在下文中,我想介紹和解釋其中的一些單行代碼——也許有一些你還不知道并且對你的下一個 Python 項目很有用。
1.交換兩個變量
#?a?=?1;?b?=?2 a,?b?=?b,?a #?print(a,b)?>>?2?1
我們從經典開始:通過簡單地交換賦值位置來交換變量的值——我認為這是最直觀的方式。無需使用臨時變量。它甚至適用于兩個以上的變量。
2.多變量賦值
a,?b,?*c?=?[1,2,3,4,5] #?print(a,b,c)?>>?1?2?[3,?4,?5]
交換變量實際上是 Python 一次分配多個變量的能力的一個特例。在這里你可以使用它來將列表元素分配給給定的變量,這也稱為拆包。將*
再次打包剩余的值,這會產生一個子列表c
。它甚至適用于每個其他位置*
(例如列表的開頭或中間部分)。
3. 對列表的每個第二個元素求和
#?a?=?[1,2,3,4,5,6] s?=?sum(a[1::2]) #?print(s)?>>?12
這里不需要特殊的 reduce 函數,sum
只需添加每個給定 iterable 的項目。此處使用擴展切片語法?[::]
來返回每隔一個元素。你可以將其讀作?[start : stop : step]
,因此[1::2]
轉換為從索引 1 的元素(第二個元素)開始,直到列表結束才停止(沒有為第二個參數提供參數)并且始終采取 2 steps。
4.刪除多個元素
#?a?=?[1,2,3,4,5] del?a[::2] #?print(a)?>>?[2,?4]
擴展的切片語法也可用于一次刪除多個列表元素。
5. 將文件讀入行數組
c?=?[line.strip()?for?line?in?open('file.txt')] #?print(c)?>>?['test1',?'test2',?'test3',?'test4']
使用 Python 的內聯 for 循環,你可以輕松地將文件讀入行數組。strip()
需要刪除尾隨換行符。如果你想保留它們或者它們對你來說無關緊要,你可以使用更短的單線:
c?=?list(open('file.txt')) #?print(c)?>>?['test1\n',?'test2\n',?'test3\n',?'test4\n']
用 Python 讀取文件真的就是這么簡單。旁注:你也可以根據需要使用該readlines()
方法。
6. 將字符串寫入文件
with?open('file.txt',?'a')?as?f:?f.write('hello?world') #?print(list(open('file.txt')))?>>?['test1\n',?'test2\n',?'test3\n',?'test4\n',?'hello?world']
借助with
語句,你可以直接將內容寫入文件。確保使用正確的模式打開文件(此處'a'
為附加內容)。
7. 列表創建
l?=?[('Hi?'?+?x)?for?x?in?['Alice',?'Bob',?'Pete']] #?print(l)?>>?['Hi?Alice',?'Hi?Bob',?'Hi?Pete']
可以使用內聯 for 循環從其他列表動態創建列表。你可以直接修改值,如本例中的字符串連接。
8.列表映射
l?=?list(map(int,?['1',?'2',?'3'])) #?print(l)?>>?[1,?2,?3]
你還可以使用 Pythonmap()
函數將每個列表元素轉換為另一種類型。
9. 創建集合
squares?=?{?x**2?for?x?in?range(6)?if?x?<?4?} #?print(squares)?>>?{0,?1,?4,?9}
它與sets相似,除了內聯 for 循環,你甚至可以直接附加條件!
10.回文檢查
#?phrase?=?'deleveled' isPalindrome?=?phrase?==?phrase[::-1] #?print(isPalindrome)?>>?true
回文是一系列正向和反向讀取相同的字符。通常你需要一些循環和條件來檢查給定的字符串是否是回文。在 Python 中,你只需將字符串與其反向字符串進行比較。除了使用切片運算符[::-1]
,你還可以使用reverse()
函數來反轉字符串。
原文鏈接:https://mp.weixin.qq.com/s/C1bdWUy01T_L4xfRjllXkg
相關推薦
- 2022-03-26 淺談C語言數組元素下標為何從0開始_C 語言
- 2022-06-01 AndriodStudio使用listview實現簡單圖書管理_Android
- 2022-05-25 Inspinia的version 2.4模板使用的谷歌字體加載很慢問題解決
- 2022-03-21 C++遞歸實現選擇排序算法_C 語言
- 2022-09-03 如何通過memberlist庫實現gossip管理集群及集群數據交互問題_相關技巧
- 2022-10-16 Python?numpy生成矩陣基礎用法實例代碼_python
- 2022-05-12 HarmonyOS 頁面跳轉
- 2022-07-22 ubuntu操作系統安裝docker部署sqllabs靶機
- 最近更新
-
- 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同步修改后的遠程分支