版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
第你需要掌握的20個Python常用技巧目錄1.字符串反轉2.每個單詞的第一個字母大寫3.字符串查找唯一元素4.重復打印字符串和列表n次5.列表生成6.變量交換7.字符串拆分為子字符串列表8.多個字符串組合為一個字符串9.檢測字符串是否為回文10.統(tǒng)計列表中元素的次數(shù)11.判斷兩個字符串是否為Anagrams12.使用try-except-else-block模塊13.使用枚舉函數(shù)得到key/value對14.檢查對象的內(nèi)存使用情況15.合并字典16.計算執(zhí)行一段代碼所花費的時間17.列表展開18.列表采樣19.數(shù)字化20.檢查列表元素的唯一性Python的可讀性和簡單性是其廣受歡迎的兩大原因,本文介紹20個常用的Python技巧來提高代碼的可讀性,并能幫助你節(jié)省大量時間,下面的技巧將在你的日常編碼練習中非常實用。
1.字符串反轉
使用Python切片反轉字符串:
#Reversingastringusingslicing
my_string="ABCDE"
reversed_string=my_string[::-1]
print(reversed_string)
#Output
#EDCBA
2.每個單詞的第一個字母大寫
使用title函數(shù)方法:
my_string="mynameischaitanyabaweja"
#usingthetitle()functionofstringclass
new_string=my_string.title()
print(new_string)
#Output
#MyNameIsChaitanyaBaweja
3.字符串查找唯一元素
使用集合的概念查找字符串的唯一元素:
my_string="aavvccccddddeee"
#convertingthestringtoaset
temp_set=set(my_string)
#stitchingsetintoastringusingjoin
new_string=''.join(temp_set)
print(new_string)
#output
#cdvae
4.重復打印字符串和列表n次
你可以使用乘法符號(*)打印字符串或列表多次:
n=3#numberofrepetitions
my_string="abcd"
my_list=[1,2,3]
print(my_string*n)
#abcdabcdabcd
print(my_list*n)
#[1,2,3,1,2,3,1,2,3]
5.列表生成
#Multiplyingeachelementinalistby2
original_list=[1,2,3,4]
new_list=[2*xforxinoriginal_list]
print(new_list)
#[2,4,6,8]
6.變量交換
a=1
b=2
a,b=b,a
print(a)#2
print(b)#1
7.字符串拆分為子字符串列表
使用.split()函數(shù):
string_1="MynameisChaitanyaBaweja"
string_2="sample/string2"
#defaultseparator''
print(string_1.split())
#['My','name','is','Chaitanya','Baweja']
#definingseparatoras'/'
print(string_2.split('/'))
#['sample','string2']
8.多個字符串組合為一個字符串
list_of_strings=['My','name','is','Chaitanya','Baweja']
#Usingjoinwiththecommaseparator
print(','.join(list_of_strings))
#Output
#My,name,is,Chaitanya,Baweja
9.檢測字符串是否為回文
my_string="abcba"
ifmy_string==my_string[::-1]:
print("palindrome")
else:
print("notpalindrome")
#Output
#palindrome
10.統(tǒng)計列表中元素的次數(shù)
#findingfrequencyofeachelementinalist
fromcollectionsimportCounter
my_list=['a','a','b','b','b','c','d','d','d','d','d']
count=Counter(my_list)#definingacounterobject
print(count)#Ofallelements
#Counter({'d':5,'b':3,'a':2,'c':1})
print(count['b'])#ofindividualelement
print(count.most_common(1))#mostfrequentelement
#[('d',5)]
11.判斷兩個字符串是否為Anagrams
Anagrams的含義為兩個單詞中,每個英文單詞(不含大小寫)出現(xiàn)的次數(shù)相同,使用Counter類判斷兩個字符串是否為Anagrams。
fromcollectionsimportCounter
str_1,str_2,str_3="acbde","abced","abcda"
cnt_1,cnt_2,cnt_3=Counter(str_1),Counter(str_2),Counter(str_3)
ifcnt_1==cnt_2:
print('1and2anagram')
ifcnt_1==cnt_3:
print('1and3anagram')
#output
#1and2anagram
12.使用try-except-else-block模塊
except獲取異常處理:
a,b=1,0
print(a/b)
#exceptionraisedwhenbis0
exceptZeroDivisionError:
print("divisionbyzero")
else:
print("noexceptionsraised")
finally:
print("Runthisalways")
#output
#divisionbyzero
#Runthisalways
13.使用枚舉函數(shù)得到key/value對
my_list=['a','b','c','d','e']
forindex,valueinenumerate(my_list):
print('{0}:{1}'.format(index,value))
#0:a
#1:b
#2:c
#3:d
#4:e
14.檢查對象的內(nèi)存使用情況
importsys
num=21
print(sys.getsizeof(num))
#InPython2,24
#InPython3,28
15.合并字典
dict_1={'apple':9,'banana':6}
dict_2={'banana':4,'orange':8}
combined_dict={**dict_1,**dict_2}
print(combined_dict)
#Output
#{'apple':9,'banana':4,'orange':8}
16.計算執(zhí)行一段代碼所花費的時間
使用time類計算運行一段代碼所花費的時間:
importtime
start_time=time.time()
#Codetocheckfollows
foriinrange(10**5):
a,b=1,2
c=a+b
#Codetocheckends
end_time=time.time()
time_taken_in_micro=(end_time-start_time)*(10**6)
print(time_taken_in_micro)
#output
#18770.217895507812
17.列表展開
fromiteration_utilitiesimportdeepflatten
#ifyouonlyhaveonedepthnested_list,usethis
defflatten(l):
return[itemforsublistinlforiteminsublist]
l=[[1,2,3],[3]]
print(flatten(l))
#[1,2,3,3]
#ifyoudon'tknowhowdeepthelistisnested
l=[[1,2,3],[4,[5],[6,7]],[8,[9,[10]]]]
print(list(deepflatten(l,depth=3)))
#[1,2,3,4,5,6,7,8,9,10]
18.列表采樣
importrandom
my_list=['a','b','c','d','e']
num_samples=2
samples=random.sample(my_list,num_samples)
print(samples)
#['a','e']thiswillhaveany2randomvalues
19.數(shù)字化
將整數(shù)轉化成數(shù)字列表
num=123456
#usingmap
list_of_digits=list(map(int,str(num)))
print(list_of_digits)
#[1,2,3,4,5,6]
#usinglistcomprehension
list_of_digits=[int(x)forxinstr(num)]
print(list_of_digits)
#[1,2,3,4,5,6]
20.檢查列表元素的唯一性
檢查列表中每個元素是否為唯一的:
defunique(l
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年數(shù)據(jù)中心綠色能源轉型報告及未來五至十年能耗優(yōu)化報告
- 培訓機構前臺年終述職
- 高中生物教學中生物技術前沿與醫(yī)學應用探索的課題報告教學研究課題報告
- 高中地理與政治跨學科教學融合:人工智能支持下的教師專業(yè)發(fā)展研究教學研究課題報告
- 2025年農(nóng)村電商服務站社交電商應用報告
- 2025年無人駕駛汽車行業(yè)技術突破報告
- 2026年及未來5年中國玻尿酸鈉行業(yè)市場全景監(jiān)測及投資戰(zhàn)略研究報告
- 2026年及未來5年中國智慧醫(yī)療建設行業(yè)市場全景分析及投資戰(zhàn)略規(guī)劃報告
- 溫州2025年自然資源部溫州海洋中心招聘筆試歷年參考題庫附帶答案詳解
- 2026寧夏銀川市應急管理局招聘1人筆試備考題庫及答案解析
- 第四單元地理信息技術的應用課件 【高效課堂+精研精講】高中地理魯教版(2019)必修第一冊
- 魯科版高中化學必修一教案全冊
- 提高隧道初支平整度合格率
- 2023年版測量結果的計量溯源性要求
- 建筑能耗與碳排放研究報告
- GB 29415-2013耐火電纜槽盒
- 中國古代經(jīng)濟試題
- 軟件定義汽車:產(chǎn)業(yè)生態(tài)創(chuàng)新白皮書
- 磷石膏抹灰專項施工方案
- 水電水利工程施工質量管理培訓講義
- ArcMap制圖-地圖版面設計實驗報告
評論
0/150
提交評論