色综合老司机第九色激情 _中文字幕日韩av资源站_国产+人+亚洲_久久久精品影院_久久久视频免费观看_欧美激情亚洲自拍_亚洲成av人片在线观看香蕉_热草久综合在线_欧美极品第一页_2020国产精品自拍

千鋒教育-做有情懷、有良心、有品質的職業教育機構

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領取全套視頻
千鋒教育

關注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  技術干貨  > Python 新手的五大坑

Python 新手的五大坑

來源:千鋒教育
發布人:xqq
時間: 2023-11-06 17:42:18 1699263738

對于Python新手來說,寫代碼很少考慮代碼的效率和簡潔性,因此容易造成代碼冗長、執行慢,這些都是需要改進的地方。本文是想通過幾個案列給新手一點啟發,怎樣寫python代碼更優雅。

01.不喜歡使用高級數據結構

sets(集合)

很多新手忽視sets(集合)和tuple(元組)的強大之處.

例如,取兩個列表交集:

defcommon_elements(list1,list2):

common=[]

foritem1inlist1:

ifitem1inlist2:

common.append(item1)、

returncommon

這樣寫會更好:

defcommon_elements(list1,list2):

common=set(list1).intersection(set(list2))

returnlist(common)

dic(字典)

新手枚舉(訪問和取出)字典的鍵和對應值,認為對應值必須通過鍵來訪問,往往會這樣做:

my_dict={'a':1,'b':2}

forkeyinmy_dict:

print(key,my_dict[key])

有一個更優雅的方法可以實現:

my_dict={'a':1,'b':2}

forkey,valueinmy_dict.items():

print(key,value)

對大部分項目來說,這樣寫會更加有效率。

tuple(元組)

元組一旦創建就無法更改元素,看似沒有什么用處,其實元組的作用大著呢!很多函數方法都會返回元組,比如enumerate()和dict.items(),并且可以在函數中使用元組,返回多個值。還能夠很方便地從元組中提取信息:

a,b=('cat','dog')

上面元組中有兩個元素,分別被賦給a,b。如果有多個值,同樣可以提取:

a,b,c=('cat','dog','tiger')

print(a,b,c)

提取首、尾兩個元素:

first,*_,end=(1,2,3,4,5,6)

print(first,end)

#輸出:1、6

提取首、中、尾三部分:

first,*middle,end=(1,2,3,4,5,6)

print(first,middle,end)

#輸出:1、[2,3,4,5]、6

元組還可以用來交換變量:

(a,b,c)=(c,a,b)

上面a變成之前的c,b變成之前的a,c變成之前的b。元組也能作為字典的鍵,所以如果你需要存儲數據,可以使用帶有元組鍵的字典,比如說經緯度數據。

02.不喜歡使用上下文管理器

新手可能會習慣這樣進行讀取文件操作:

ifos.path.exists(data_file_path):

data_file=open(data_file_path,'r')

else:

raiseOSERROR

print(data_file.read())

data.close()

這樣寫會有幾個明顯的問題:

·可能出現文件存在,但文件被占用,無法讀取的情況

·可能出現文件可以被讀取,但操作文件對象出現報錯的情況

·可能出現忘記關閉文件的情況

如果使用with…語句,問題就迎刃而解了:

withopen(data_file_path,'r')asdata_file:

print(data_file.read)

這樣可以捕獲任何打開文件或處理數據時的異常情況,并且在任務處理完后自動關閉文件。

python初學者可能不太了解上下文管理器的神奇之處,它真的能帶來巨大的便利。

03.不喜歡使用標準庫

標準庫itertools和collections仍然很少被初學者使用

itertools

如果你看到下面的任務:

list1=range(1,10)

list2=range(10,20)

foritem1inlist1:

foritem2inlist1:

print(item1*item2)

這是一個嵌套循環操作,為提高代碼效率,完全可以用product()函數替代嵌套循環:

fromitertoolsimportproduct

list1=range(1,10)

list2=range(10,20)

foritem1,item2inproduct(list1,list2):

print(item1*item2)

這兩段代碼的結果完全一樣,但使用標準庫函數明顯更加簡潔高效。itertools還有很多方便操作迭代對象的函數,比如:

·count()函數會創建一個無限迭代器

·cycle()函數會把傳入的序列無限重復下去

·chain()可以把多個迭代對象串聯起來

·group()函數可以把迭代其中相鄰的重復元素挑出來,放在一起

有興趣可以詳細看看itertools庫的各種神奇函數。

collections

新手對python集合模塊了解的可能并不多,你可能會遇到這樣的情形:

consolidated_list=[('a',1),('b',2),('c',3),('b',4)]

items_by_id={}

forid_,iteminconsolidated_list:

ifid_notinitems_by_id:

items_by_id[id_]=[]

ifid_initems_by_id:

items_by_id[id_].append(item)

上面代碼構建了一個字典,依次向字典中添加信息,如果某個鍵已經存在,則以某種方式修改該鍵的值;如果某個鍵不存在,則添加對應鍵值對。

這種算法非常常見,你可以用collects模塊的defaultdict()函數來實現同樣效果:

fromcollectionsimportdefaultdict

items_by_id=defaultdict(list)

consolidated_list=[('a',1),('b',2),('c',3),('b',4)]

forid_,iteminconsolidated_list:

items_by_id[id_].append(item)

在此列中,defaultdict()接受一個list作為參數,當鍵不存在時,則返回一個空列表作為對應值。

有時候我們會遇到統計詞頻的案例,比如:

#統計詞頻

colors=['red','blue','red','green','blue','blue']

result={}

forcolorincolors:

ifresult.get(color)==None:

result[color]=1

else:

result[color]+=1

print(result)

#輸出{'red':2,'blue':3,'green':1}

完全可以用defaultdict()函數實現上面的計數功能:

colors=['red','blue','red','green','blue','blue']

d=defaultdict(int)

forcolorincolors:

d[color]+=1

print(d)

更簡單的方法用collections模塊的Counter()函數:

fromcollectionsimportCounter

colors=['red','blue','red','green','blue','blue']

c=Counter(colors)

print(dict(c))

對于備份文件,新人往往會用system模塊:

fromosimportsystem

system("xcopye:\\sample.csve:\\newfile\\")

其實shutil模塊更好用:

importshutil

shutil.copyfile('E:\\q.csv','e:\\movie\\q.csv')

因為shutil會很詳細地報告錯誤和異常。

04.不喜歡使用異常處理

無論老手新手都應該在寫代碼的時候進行異常處理操作,這樣可以使代碼更加健壯。異常處理一般會用try…except語句。

05.:不喜歡使用生成器

除非你的list十分復雜,并且頻繁調用,否則都建議使用生成器,因為它非常節省內存,舉個例子:

defpowers_of_two(max=20000):

i=0

powers=[]

while2**i

powers.append[2**i]

i+=1

returnpowers

對于使用次數少、占據大量內存、且容易生成的數據,可以用生成器替代列表存儲:

fromitertoolsimportcount,takewhile

defpowers_of_two(max=20000):

forindexintakewhile(lambdai:2**i

yield2**index

以上內容為大家介紹了Python新手的五大坑,希望對大家有所幫助,如果想要了解更多Python相關知識,請關注IT培訓機構:千鋒教育。http://www.duolefu.net/

tags: python培訓
聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。
10年以上業內強師集結,手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內將與您1V1溝通
免費領取
今日已有369人領取成功
劉同學 138****2860 剛剛成功領取
王同學 131****2015 剛剛成功領取
張同學 133****4652 剛剛成功領取
李同學 135****8607 剛剛成功領取
楊同學 132****5667 剛剛成功領取
岳同學 134****6652 剛剛成功領取
梁同學 157****2950 剛剛成功領取
劉同學 189****1015 剛剛成功領取
張同學 155****4678 剛剛成功領取
鄒同學 139****2907 剛剛成功領取
董同學 138****2867 剛剛成功領取
周同學 136****3602 剛剛成功領取
相關推薦HOT
色综合老司机第九色激情 _中文字幕日韩av资源站_国产+人+亚洲_久久久精品影院_久久久视频免费观看_欧美激情亚洲自拍_亚洲成av人片在线观看香蕉_热草久综合在线_欧美极品第一页_2020国产精品自拍
日韩一区在线播放| 欧美性大战xxxxx久久久| 麻豆极品一区二区三区| 欧美偷拍一区二区| 亚洲免费视频成人| 一本到不卡精品视频在线观看| 欧美激情艳妇裸体舞| 粉嫩一区二区三区在线看| 日本一区二区三区视频视频| 国产一区二区三区精品视频 | 亚洲国产成人一区二区三区| 国内精品免费**视频| 国产午夜久久久久| 欧美性做爰猛烈叫床潮| 久久国产成人午夜av影院| 国产精品沙发午睡系列990531| 91女厕偷拍女厕偷拍高清| 一区二区三区美女| 精品国产免费人成在线观看| 99视频热这里只有精品免费| 婷婷久久综合九色综合绿巨人| www国产成人| 欧美视频中文一区二区三区在线观看 | 欧美乱妇15p| 国产一区二区三区| 亚洲成人av免费| 国产香蕉久久精品综合网| 欧美无砖专区一中文字| 国产一区在线不卡| 午夜日韩在线电影| 1区2区3区精品视频| 日韩三级中文字幕| 欧美日韩一区小说| 色94色欧美sute亚洲线路一久| 精品一区二区三区在线播放| 一区二区三区在线视频免费| 久久精品亚洲一区二区三区浴池 | 日韩一区二区在线观看| 成人蜜臀av电影| 久久成人免费日本黄色| 亚洲成a人片综合在线| 国产精品高潮呻吟久久| 久久久久国产精品免费免费搜索| 欧美日韩中文一区| 在线中文字幕一区| 成人一区二区三区在线观看| 韩国av一区二区三区在线观看| 日本在线不卡一区| 亚洲h动漫在线| 午夜久久久久久久久久一区二区| 日韩毛片精品高清免费| 中文字幕日韩一区| 国产精品美女久久久久久久网站| 久久久噜噜噜久久中文字幕色伊伊 | 欧美日韩久久不卡| 欧美性猛交xxxx乱大交退制版| av色综合久久天堂av综合| www.欧美色图| 成人福利电影精品一区二区在线观看| 精品一区二区三区香蕉蜜桃| 国产美女视频一区| 风流少妇一区二区| aaa欧美色吧激情视频| 91精品福利在线| 欧美肥妇free| 26uuu国产电影一区二区| 国产日韩影视精品| 亚洲老妇xxxxxx| 亚洲一区二区三区小说| 狠狠v欧美v日韩v亚洲ⅴ| 欧美中文字幕久久| 91精品国产91久久久久久最新毛片| 欧美区一区二区三区| 成人午夜激情视频| 精品国产第一区二区三区观看体验| 欧美日韩国产一二三| 精品视频在线免费| 日韩精品在线一区| 国产精品污www在线观看| 亚洲精品成人a在线观看| 日韩一区精品字幕| 粉嫩aⅴ一区二区三区四区五区| 91玉足脚交白嫩脚丫在线播放| 91浏览器在线视频| 精品久久国产老人久久综合| 国产精品成人在线观看| 婷婷综合久久一区二区三区| 国产精品白丝jk黑袜喷水| 99亚偷拍自图区亚洲| 日韩一区二区三区免费观看| ...av二区三区久久精品| 蜜臀a∨国产成人精品| 成人免费av在线| 精品sm捆绑视频| 日韩精品福利网| 在线中文字幕一区二区| 国产丶欧美丶日本不卡视频| 国产v日产∨综合v精品视频| 欧美这里有精品| 欧美激情资源网| 国产专区欧美精品| 制服丝袜中文字幕一区| 亚洲精品五月天| a美女胸又www黄视频久久| 国产亚洲欧美中文| 国产一区二区三区不卡在线观看| 欧美日韩国产123区| 亚洲精品国产成人久久av盗摄| 国产一区二区三区日韩| 日韩一区二区视频| 天天综合天天综合色| 7777精品伊人久久久大香线蕉超级流畅| 国产亚洲婷婷免费| 国产一级精品在线| 久久久夜色精品亚洲| 国产乱一区二区| 久久精品视频一区二区三区| 国内成人自拍视频| 欧美精品一区二区三区蜜臀| 韩国v欧美v亚洲v日本v| 国产亚洲欧洲997久久综合| 国产精品综合一区二区| 欧美国产欧美亚州国产日韩mv天天看完整| 美洲天堂一区二卡三卡四卡视频| 这里是久久伊人| 精品一区精品二区高清| 久久毛片高清国产| 波多野结衣中文一区| 一区二区三区 在线观看视频| 一本大道综合伊人精品热热| 亚洲综合视频网| 精品欧美一区二区在线观看| 国产一区二区伦理| 一色屋精品亚洲香蕉网站| 欧美亚洲另类激情小说| 久久99精品久久只有精品| 国产欧美一区二区精品婷婷| 91亚洲精华国产精华精华液| 亚洲国产日韩综合久久精品| 日韩欧美亚洲国产另类| 成人综合日日夜夜| 亚洲午夜激情av| 久久久另类综合| 一本到不卡免费一区二区| 美女高潮久久久| 中文字幕亚洲欧美在线不卡| 91精品国产高清一区二区三区蜜臀| 久久99精品网久久| 一区二区三区在线观看视频| 欧美电影免费观看完整版| 99在线精品免费| 国产美女av一区二区三区| 亚洲chinese男男1069| 国产欧美精品一区| 欧美高清视频不卡网| 91福利国产精品| 丁香激情综合国产| 国产专区综合网| 精品一区二区三区免费观看| 午夜一区二区三区在线观看| 国产精品久久精品日日| 亚洲精品一区二区三区99| 欧美色区777第一页| 色吧成人激情小说| 9色porny自拍视频一区二区| 国产精品一区二区男女羞羞无遮挡| 午夜精品久久久久久久99水蜜桃| 亚洲人123区| 综合av第一页| 国产日韩精品久久久| 久久女同精品一区二区| 久久综合九色综合欧美就去吻| 欧美一区国产二区| 日韩欧美在线一区二区三区| 欧美一区二区福利在线| 欧美视频自拍偷拍| 欧美高清视频一二三区 | 99re热这里只有精品免费视频| 久热成人在线视频| 韩国欧美国产1区| 丰满白嫩尤物一区二区| 99热这里都是精品| 欧美丝袜丝交足nylons| 欧美xingq一区二区| 国产欧美精品一区二区色综合| 国产精品入口麻豆原神| 亚洲女人的天堂| 午夜欧美2019年伦理| 青青草原综合久久大伊人精品 | 丝袜亚洲另类丝袜在线| 美日韩一区二区三区| 国产成人免费视| 成人黄色软件下载| 欧美高清视频在线高清观看mv色露露十八 | 亚洲免费资源在线播放| 亚洲图片一区二区| 精品一区二区三区日韩| 91丝袜高跟美女视频| 在线播放国产精品二区一二区四区| 2024国产精品|