這些看起來很呆的Python編寫習慣
hello,在這篇文章中,將介紹17個有很大改進空間的Python編程案例,既然都用Python了,那么提供的輪子就趕緊用起來哈哈,一起看看吧~
1.使用多個打印語句
初級
如果想打印多個變量,部分人會覺得每個變量都應該有自己的?print()
?語句,哈哈哈以前我也是
進階
使用多個打印語句尤其是新手在使用 Python 編碼時最常犯的錯誤,其實,使用print()
,可以在單個打印語句中打印多個變量,如下所示:
上面的sep
參數(shù)指定使用相同打印語句(上面的?a
、b
?和c
)打印的各種變量之間的分隔符
注意,
end
參數(shù)用于指定print語句的結束符
在上面的代碼中,end='\n---\n'
參數(shù)打印換行符,再是?---
,然后是換行符
2. 使用Print語句代替日志記錄模塊
在小型項目中可能無關緊要,我自己也是喜歡print,但值得一提的是大型項目中日志就太重要了
初級
進階
3.使用for循環(huán)打印相同的變量
初級
如標題所述,我們的目標是多次打印同一個變量
當然,創(chuàng)建一個for循環(huán)打印,能說這有問題嗎,當然沒什么問題
進階
雖然寫一個for循環(huán)沒壞處,但沒必要,可以這樣
4.創(chuàng)建一個單獨的變量來跟蹤循環(huán)中的索引
初級 - 1
為實現(xiàn)這一點,通常會定義一個新變量idx
來跟蹤索引值并在每次迭代時遞增它,如下所示:
初級 - 2
或者,創(chuàng)建一個range
迭代器來跟蹤索引,如下:
進階
不得不提enumerate()
方法,使用此方法,可以跟蹤索引idx
和值i
,如下所示:
5.使用for循環(huán)將列表轉換為字符串

初級
如下所示,使用for循環(huán)一次拼接列表中的一個元素
進階
其實將列表轉換為字符串的簡便方法是使用join()
方法,如下所示:
這不僅能免于編寫一些不必要的長代碼,而且與 for 循環(huán)方法一樣直觀。
6.使用for循環(huán)從列表中刪除重復項

初級
遍歷輸入列表并將唯一元素存儲在新列表中
進階
其實,集合就行啦,使用一行代碼就可以從列表中刪除重復項
二者可以相互轉換
7.使用for循環(huán)在列表中搜索元素
初級
假設想知道某個元素是否存在于列表(或集合)中并返回布爾(如果存在則為True
,否則為False
)
初級用法如下所示:
太復雜了
進階
使用in
關鍵字將其簡化為單行實現(xiàn)
?
8.使用索引變量迭代兩個相同size的可迭代對象
初級
類似于在第4節(jié)中所提,定義一個專門用于索引的變量,在兩個size相同的列表中取值,如下所示:
進階
進階一點的方法是使用zip()
函數(shù),將兩個可迭代對象中的相應值配對
9.使用for循環(huán)反轉列表

初級
反向迭代列表并將元素添加到新列表,如下所示:
進階
如果了解 Python 中的切片,那么一個簡單的單行代碼就可以實現(xiàn)(其實內置方法等都可以實現(xiàn))
10.使用for循環(huán)計算可迭代對象中元素的出現(xiàn)次數(shù)
初級
查找元素頻率的簡單方法是使用for循環(huán)遍歷列表并計算次數(shù)
進階
其實可以使用count()
方法:
同樣的,也可以在字符串中使用:
11.使用for循環(huán)獲取字符串的子字符串
初級
這里的目標是返回一個長度為n_chars
的子串,從位置start_index
開始
很多人解決這個問題的方法是使用for循環(huán),如下所示:
進階
單行方法是使用切片,這樣可以避免編寫for循環(huán)
12.定義長整型常量
假設想聲明一個值為 1021 的整型變量
初級
很多情況下,會連續(xù)寫入零并在鍵入時進行計數(shù)
但是別人若要參考這段代碼,就得把所有的零都數(shù)一遍,當場去世
進階
為提高可讀性,可以用_
(下劃線)分隔,如下:
但這仍然很麻煩,還是要數(shù)零。
如果數(shù)字能以?a^b
?的形式表示,則可以改用?pow()
方法,或者科學計數(shù)法:
13.使用if條件更改字符串的大小寫
給定一個字符串,目標是將大寫字母變?yōu)樾?,反之亦?/p>
初級
檢查每個元素的情況,然后為每個情況設置特定條件
進階
可以改用swapcase()
方法
14.獲得兩個集合的并集

初級
迭代這兩個集合并將元素添加到一個新集合中
進階
Python 為兩個集合的并集提供了union()
方法
更重要的是,可以將其擴展到任意數(shù)量的輸入集:
想象一下,需要編寫多少個for循環(huán)來合并這四個集合,同樣的集合還有求補、交等等便捷內置方法
15.更改列表中所有元素的數(shù)據(jù)類型
給定一個表示整數(shù)的字符串列表,目標是通過更改數(shù)據(jù)類型將它們轉換為整數(shù)列表
初級
循環(huán)遍歷列表并對單個元素進行類型轉換
進階
使用map()
,如下所示:
作為其第一個參數(shù),map()
方法接受一個函數(shù)?int
,第二個參數(shù)是一個可迭代對象?input_list
16.交換變量
給定兩個變量,目標是將第一個變量的值傳遞給第二個變量,將第二個變量的值傳遞給第一個變量
初級
大多數(shù)寫慣了 C/C++ 的程序員采用的方法是定義一個新變量temp
進階
而Python 允許在單個語句中進行多次賦值,從而消除對臨時變量的需要,就是解包啦,之前教程都有說過
17.使用嵌套循環(huán)生成兩個列表的所有組合
給定兩個列表(a
的長度為?n
,b
的長度為m
),生成所有n*m
結構
初級
編寫兩個嵌套的for循環(huán)并將所有組合添加到列表中
進階
使用 itertools 庫中的product()
方法,如下所示:
事實上包括我在內,以前很多時候都習慣于用for循環(huán)等解決問題,其實就是對內置函數(shù)/方法不熟悉~
以上內容有任何錯誤歡迎指出