Python實用例子有哪些-創(chuàng)新互聯(lián)

這篇文章主要講解了“Python實用例子有哪些”,文中的講解內(nèi)容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Python實用例子有哪些”吧!

為富平等地區(qū)用戶提供了全套網(wǎng)頁設計制作服務,及富平網(wǎng)站建設行業(yè)解決方案。主營業(yè)務為網(wǎng)站建設、成都網(wǎng)站建設、富平網(wǎng)站設計,以傳統(tǒng)方式定制建設網(wǎng)站,并提供域名空間備案等一條龍服務,秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!
一、基本操作

1 鏈式比較

i=3print(1<i<3)#Falseprint(1<i<=3)#True

2 不用else和if實現(xiàn)計算器

fromoperatorimport*defcalculator(a,b,k):return{'+':add,'-':sub,'*':mul,'/':truediv,'**':pow}[k](a,b)calculator(1,2,'+')#3calculator(3,4,'**')#81

3 函數(shù)鏈

fromoperatorimport(add,sub)defadd_or_sub(a,b,oper):return(addifoper=='+'elsesub)(a,b)add_or_sub(1,2,'-')#-1

4 求字符串的字節(jié)長度

defstr_byte_len(mystr):return(len(mystr.encode('utf-8')))str_byte_len('ilovepython')#13(個字節(jié))str_byte_len('字符')#6(個字節(jié))

5 尋找第n次出現(xiàn)位置

defsearch_n(s,c,n):size=0fori,xinenumerate(s):ifx==c:size+=1ifsize==n:returnireturn-1print(search_n("fdasadfadf","a",3))#結(jié)果為7,正確print(search_n("fdasadfadf","a",30))#結(jié)果為-1,正確

6 去掉最高最低求平均

defscore_mean(lst):lst.sort()lst2=lst[1:(len(lst)-1)]returnround((sum(lst2)/len(lst2)),2)score_mean([9.1,9.0,8.1,9.7,19,8.2,8.6,9.8])#9.07

7 交換元素

defswap(a,b):returnb,aswap(1,0)#(0,1)
二、基礎算法

1 二分搜索

defbinarySearch(arr,left,right,x):whileleft<=right:mid=int(left+(right-left)/2);#找到中間位置。求中點寫成(left+right)/2更容易溢出,所以不建議這樣寫#檢查x是否出現(xiàn)在位置midifarr[mid]==x:print('found%d在索引位置%d處'%(x,mid))returnmid#假如x更大,則不可能出現(xiàn)在左半部分elifarr[mid]<x:left=mid+1#搜索區(qū)間變?yōu)閇mid+1,right]print('區(qū)間縮小為[%d,%d]'%(mid+1,right))elifx<arr[mid]:right=mid-1#搜索區(qū)間變?yōu)閇left,mid-1]print('區(qū)間縮小為[%d,%d]'%(left,mid-1))return-1

2 距離矩陣

x,y=mgrid[0:5,0:5]list(map(lambdaxe,ye:[(ex,ey)forex,eyinzip(xe,ye)],x,y))[[(0,0),(0,1),(0,2),(0,3),(0,4)],[(1,0),(1,1),(1,2),(1,3),(1,4)],[(2,0),(2,1),(2,2),(2,3),(2,4)],[(3,0),(3,1),(3,2),(3,3),(3,4)],[(4,0),(4,1),(4,2),(4,3),(4,4)]]
三、列表

1 打印乘法表

foriinrange(1,10):forjinrange(1,i+1):print('{0}*{1}={2}'.format(j,i,j*i),end="\t")print()

結(jié)果:

1*1=11*2=22*2=41*3=32*3=63*3=91*4=42*4=83*4=124*4=161*5=52*5=103*5=154*5=205*5=251*6=62*6=123*6=184*6=245*6=306*6=361*7=72*7=143*7=214*7=285*7=356*7=427*7=491*8=82*8=163*8=244*8=325*8=406*8=487*8=568*8=641*9=92*9=183*9=274*9=365*9=456*9=547*9=638*9=729*9=81

2 嵌套數(shù)組完全展開

fromcollections.abcimport*defflatten(input_arr,output_arr=None):ifoutput_arrisNone:output_arr=[]foreleininput_arr:ifisinstance(ele,Iterable):#判斷ele是否可迭代flatten(ele,output_arr)#尾數(shù)遞歸else:output_arr.append(ele)#產(chǎn)生結(jié)果returnoutput_arrflatten([[1,2,3],[4,5]],[6,7])#[6,7,1,2,3,4,5]

3 將list等分為子組

frommathimportceildefdivide(lst,size):ifsize<=0:return[lst]return[lst[i*size:(i+1)*size]foriinrange(0,ceil(len(lst)/size))]r=divide([1,3,5,7,9],2)#[[1,3],[5,7],[9]]

4 生成fibonacci序列前n項

deffibonacci(n):ifn<=1:return[1]fib=[1,1]whilelen(fib)<n:fib.append(fib[len(fib)-1]+fib[len(fib)-2])returnfibfibonacci(5)#[1,1,2,3,5]

5 過濾掉各種空值

deffilter_false(lst):returnlist(filter(bool,lst))filter_false([None,0,False,'',[],'ok',[1,2]])#['ok',[1,2]]

6 返回列表頭元素

defhead(lst):returnlst[0]iflen(lst)>0elseNonehead([])#Nonehead([3,4,1])#3

7 返回列表尾元素

deftail(lst):returnlst[-1]iflen(lst)>0elseNoneprint(tail([]))#Noneprint(tail([3,4,1]))#1

8 對象轉(zhuǎn)換為可迭代類型

fromcollections.abcimportIterabledefcast_iterable(val):returnvalifisinstance(val,Iterable)else[val]cast_iterable('foo')#foocast_iterable(12)#[12]cast_iterable({'foo':12})#{'foo':12}

9 求更長列表

defmax_length(*lst):returnmax(*lst,key=lambdav:len(v))r=max_length([1,2,3],[4,5,6,7],[8])#[4,5,6,7]

10 出現(xiàn)最多元素

defmax_frequency(lst):returnmax(lst,default='列表為空',key=lambdav:lst.count(v))lst=[1,3,3,2,1,1,2]max_frequency(lst)#1

11 求多個列表的大值

defmax_lists(*lst):returnmax(max(*lst,key=lambdav:max(v)))max_lists([1,2,3],[6,7,8],[4,5])#8

12 求多個列表的最小值

defmin_lists(*lst):returnmin(min(*lst,key=lambdav:max(v)))min_lists([1,2,3],[6,7,8],[4,5])#1

13 檢查list是否有重復元素

defhas_duplicates(lst):returnlen(lst)==len(set(lst))x=[1,1,2,2,3,2,3,4,5,6]y=[1,2,3,4,5]has_duplicates(x)#Falsehas_duplicates(y)#True

14 求列表中所有重復元素

fromcollectionsimportCounterdeffind_all_duplicates(lst):c=Counter(lst)returnlist(filter(lambdak:c[k]>1,c))find_all_duplicates([1,2,2,3,3,3])#[2,3]

15 列表反轉(zhuǎn)

defreverse(lst):returnlst[::-1]reverse([1,-2,3,4,1,2])#[2,1,4,3,-2,1]

16 浮點數(shù)等差數(shù)列

defrang(start,stop,n):start,stop,n=float('%.2f'%start),float('%.2f'%stop),int('%.d'%n)step=(stop-start)/nlst=[start]whilen>0:start,n=start+step,n-1lst.append(round((start),2))returnlstrang(1,8,10)#[1.0,1.7,2.4,3.1,3.8,4.5,5.2,5.9,6.6,7.3,8.0]
四、字典

1 字典值大的鍵值對列表

defmax_pairs(dic):iflen(dic)==0:returndicmax_val=max(map(lambdav:v[1],dic.items()))return[itemforitemindic.items()ifitem[1]==max_val]max_pairs({'a':-10,'b':5,'c':3,'d':5})#[('b',5),('d',5)]

2 字典值最小的鍵值對列表

defmin_pairs(dic):iflen(dic)==0:return[]min_val=min(map(lambdav:v[1],dic.items()))return[itemforitemindic.items()ifitem[1]==min_val]min_pairs({})#[]r=min_pairs({'a':-10,'b':5,'c':3,'d':5})print(r)#[('b',5),('d',5)]

3 合并兩個字典

defmerge_dict2(dic1,dic2):return{**dic1,**dic2}#python3.5后支持的一行代碼實現(xiàn)合并字典merge_dict({'a':1,'b':2},{'c':3})#{'a':1,'b':2,'c':3}

4 求字典前n個大值

fromheapqimportnlargest#返回字典d前n個大值對應的鍵deftopn_dict(d,n):returnnlargest(n,d,key=lambdak:d[k])topn_dict({'a':10,'b':8,'c':9,'d':10},3)#['a','d','c']

5 求最小鍵值對

d={'a':-10,'b':5,'c':3,'d':5}min(d.items(),key=lambdax:x[1])#('a',-10)
五、集合

1 互為變位詞

fromcollectionsimportCounter#檢查兩個字符串是否相同字母異序詞,簡稱:互為變位詞defanagram(str1,str2):returnCounter(str1)==Counter(str2)anagram('eleven+two','twelve+one')#True這是一對神器的變位詞anagram('eleven','twelve')#False
六、文件操作

1 查找指定文件格式文件

importosdeffind_file(work_dir,extension='jpg'):lst=[]forfilenameinos.listdir(work_dir):print(filename)splits=os.path.splitext(filename)ext=splits[1]#拿到擴展名ifext=='.'+extension:lst.append(filename)returnlstfind_file('.','md')#返回所有目錄下的md文件
七、正則和爬蟲

1 爬取天氣數(shù)據(jù)并解析溫度值

素材來自朋友袁紹

importrequestsfromlxmlimportetreeimportpandasaspdimportreurl='http://www.weather.com.cn/weather1d/101010100.shtml#input'withrequests.get(url)asres:content=res.contenthtml=etree.HTML(content)

通過lxml模塊提取值,lxml比beautifulsoup解析在某些場合更高效

location=html.xpath('//*[@id="around"]//a[@target="_blank"]/span/text()')temperature=html.xpath('//*[@id="around"]/div/ul/li/a/i/text()')

結(jié)果:

['香河','涿州','唐山','滄州','天津','廊坊','太原','石家莊','涿鹿','張家口','保定','三河','北京孔廟','北京國子監(jiān)','中國地質(zhì)博物館','月壇公園','明城墻遺址公園','北京市規(guī)劃展覽館','什剎海','南鑼鼓巷','天壇公園','北海公園','景山公園','北京海洋館']['11/-5°C','14/-5°C','12/-6°C','12/-5°C','11/-1°C','11/-5°C','8/-7°C','13/-2°C','8/-6°C','5/-9°C','14/-6°C','11/-4°C','13/-3°C','13/-3°C','12/-3°C','12/-3°C','13/-3°C','12/-2°C','12/-3°C','13/-3°C','12/-2°C','12/-2°C','12/-2°C','12/-3°C']
df=pd.DataFrame({'location':location,'temperature':temperature})print('溫度列')print(df['temperature'])

正則解析溫度值

df['high']=df['temperature'].apply(lambdax:int(re.match('(-?[0-9]*?)/-?[0-9]*?°C',x).group(1)))df['low']=df['temperature'].apply(lambdax:int(re.match('-?[0-9]*?/(-?[0-9]*?)°C',x).group(1)))print(df)

詳細說明子字符創(chuàng)捕獲

除了簡單地判斷是否匹配之外,正則表達式還有提取子串的強大功能。用()表示的就是要提取的分組(group)。比如:^(\d{3})-(\d{3,8})$分別定義了兩個組,可以直接從匹配的字符串中提取出區(qū)號和本地號碼

m=re.match(r'^(\d{3})-(\d{3,8})$','010-12345')print(m.group(0))print(m.group(1))print(m.group(2))#010-12345#010#12345

如果正則表達式中定義了組,就可以在Match對象上用group()方法提取出子串來。

注意到group(0)永遠是原始字符串,group(1)、group(2)……表示第1、2、……個子串。

最終結(jié)果

Name:temperature,dtype:objectlocationtemperaturehighlow0香河11/-5°C11-51涿州14/-5°C14-52唐山12/-6°C12-63滄州12/-5°C12-54天津11/-1°C11-15廊坊11/-5°C11-56太原8/-7°C8-77石家莊13/-2°C13-28涿鹿8/-6°C8-69張家口5/-9°C5-910保定14/-6°C14-611三河11/-4°C11-412北京孔廟13/-3°C13-313北京國子監(jiān)13/-3°C13-314中國地質(zhì)博物館12/-3°C12-315月壇公園12/-3°C12-316明城墻遺址公園13/-3°C13-317北京市規(guī)劃展覽館12/-2°C12-218什剎海12/-3°C12-319南鑼鼓巷13/-3°C13-320天壇公園12/-2°C12-221北海公園12/-2°C12-222景山公園12/-2°C12-223北京海洋館12/-3°C12-3

2 批量轉(zhuǎn)化駝峰格式

importredefcamel(s):s=re.sub(r"(\s|_|-)+","",s).title().replace("","")returns[0].lower()+s[1:]#批量轉(zhuǎn)化defbatch_camel(slist):return[camel(s)forsinslist]batch_camel(['student_id','student\tname','student-add'])#['studentId','studentName','studentAdd']
八、繪圖

1 turtle繪制奧運五環(huán)圖
結(jié)果:

Python實用例子有哪些

2 turtle繪制漫天雪花
結(jié)果:

Python實用例子有哪些

3 4種不同顏色的色塊,它們的顏色真的不同嗎?

Python實用例子有哪些

4 詞頻云圖

importhashlibimportpandasaspdfromwordcloudimportWordCloudgeo_data=pd.read_excel(r"../data/geo_data.xlsx")words=','.join(xforxingeo_data['city']ifx!=[])#篩選出非空列表值wc=WordCloud(background_color="green",#背景顏色"green"綠色max_words=100,#顯示大詞數(shù)font_path='./fonts/simhei.ttf',#顯示中文min_font_size=5,max_font_size=100,width=500#圖幅寬度)x=wc.generate(words)x.to_file('../data/geo_data.png')

Python實用例子有哪些

八、生成器

1 求斐波那契數(shù)列前n項(生成器版)

deffibonacci(n):a,b=1,1for_inrange(n):yieldaa,b=b,a+blist(fibonacci(5))#[1,1,2,3,5]

2 將list等分為子組(生成器版)

frommathimportceildefdivide_iter(lst,n):ifn<=0:yieldlstreturni,div=0,ceil(len(lst)/n)whilei<n:yieldlst[i*div:(i+1)*div]i+=1list(divide_iter([1,2,3,4,5],0))#[[1,2,3,4,5]]list(divide_iter([1,2,3,4,5],2))#[[1,2,3],[4,5]]
九、keras

1 Keras入門例子

importnumpyasnpfromkeras.modelsimportSequentialfromkeras.layersimportDensedata=np.random.random((1000,1000))labels=np.random.randint(2,size=(1000,1))model=Sequential()model.add(Dense(32,activation='relu',input_dim=100))model.add(Dense(1,activation='sigmoid'))model.compile(optimize='rmsprop',loss='binary_crossentropy',metrics=['accuracy'])model.fit(data,labels,epochs=10,batch_size=32)predictions=model.predict(data)

感謝各位的閱讀,以上就是“Python實用例子有哪些”的內(nèi)容了,經(jīng)過本文的學習后,相信大家對Python實用例子有哪些這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關知識點的文章,歡迎關注!

本文名稱:Python實用例子有哪些-創(chuàng)新互聯(lián)
分享路徑:http://muchs.cn/article18/pipdp.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設、云服務器全網(wǎng)營銷推廣、網(wǎng)站內(nèi)鏈、用戶體驗網(wǎng)站建設

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站制作