你需要掌握的20個Python常用技巧_第1頁
你需要掌握的20個Python常用技巧_第2頁
你需要掌握的20個Python常用技巧_第3頁
你需要掌握的20個Python常用技巧_第4頁
你需要掌握的20個Python常用技巧_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論