日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

Python进阶全系列

發(fā)布時間:2023/12/20 python 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python进阶全系列 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1.推導(dǎo)式

import random#列表解析 L=[random.randint(-10,10) for _ in range(10)]#隨機生成長度為10的隨機列表 print(L) #選取大于0的元素 #方法一 print([x for x in L if x>0])#方法二: g=filter(lambda x:x>0,L) print(list(g))#字典解析練習(xí) #方法一: D={'stu%d'%i:random.randint(0,100) for i in range(1,21)} print(D) print("優(yōu)秀的學(xué)生如下:\n",{k:v for k,v in D.items() if v>=84})#方法二: print("優(yōu)秀的學(xué)生如下2:\n",dict(filter(lambda item:item[1]>=85,D.items())))

2.將下標(biāo)對應(yīng)到具體含義,提高可讀性

"""將下標(biāo)替換成語義,使代碼可讀性好的方法 """ s=("張三",19,"男") #方法一:賦值 name,age,sex=range(3) print("方法一:",s[name],s[age],s[sex])#方法二:枚舉 from enum import IntEnum class StudentEnum(IntEnum):NAME=0AGE=1SEX=2 print("方法二:",s[StudentEnum.NAME],s[StudentEnum.AGE],s[StudentEnum.SEX])#方法三:利用構(gòu)造器構(gòu)造 from collections import namedtuple Student=namedtuple('Student',['name','age','sex'])#namedtuple返回一個類,類名為Student s2=Student('Jim',18,"male")#s2是Student這個類的實例, s2是一個tuple類型 print("方法三(1):",s2.name,s2.age,s2.sex) print(" s2是一個tuple類型嗎?",isinstance(s2,tuple)) #既然s2是元組,那么就可以按照元組方式訪問 print("方法三(2):",s2[name],s2[age],s2[sex])

運行結(jié)果:

3.根據(jù)字典中值的大小,對項進行排序

解決方法:將字典中的各項轉(zhuǎn)換為元組,使用內(nèi)置函數(shù)sorted 排序。

????????方案一:將字典中的項轉(zhuǎn)化為(值,鍵)元組。(列表解析或zip )

T=(1,3,1,5,2,6) print("驗證元組是可以排序的:",sorted(T))#元組是可以排序的 print("元組的比較方法與字符串一樣:(3,2)>(2,4)?",("Yes" if (3,2)>(2,4) else "No")) print(" (3,2)>(3,4)?",("Yes" if (3,2)>(3,4) else "No"),end='\n\n')import random d={k:random.randint(60,100) for k in "abcdefgh"} print("d=",d)#方案一(1):使用列表解析將字典轉(zhuǎn)換為元組從而比較大小 d1={(v,k) for k,v in d.items()}#因為元組可以比較大小,所以生成元組 print("交換key和value的順序后:",d1) print("按照數(shù)字從大到小的順序為:",sorted(d1,reverse=True),end="\n\n")#方案一(2):使用zip d2=list(zip(d.values(),d.keys())) print("zip函數(shù)的使用介紹:",d2) print("使用zip方法排序后的結(jié)果:",sorted(d2))

????????方案一的運行結(jié)果:

????????方案二:傳遞sorted函數(shù)的key參數(shù)

#方案二:使用sorted的key參數(shù) d3=sorted(d.items(),key=lambda item:item[1],reverse=True) print("使用sorted的key參數(shù):",d3) #標(biāo)記為第一名、第二名... l3=list(enumerate(d3,1)) print("標(biāo)記完的結(jié)果:",l3)#1表示從1開始,默認為0 dd3={k:(i,v) for i,(k,v) in enumerate(d3,1)} print("方案二的最終結(jié)果為",dd3)

????????方案二的運行結(jié)果:

4.統(tǒng)計序列中元素的頻度

????????方案1:將序列轉(zhuǎn)換為字典{元素:頻度},根據(jù)字典中的值排序。

import random data=[random.randint(0,20) for _ in range(30)] print("data為:",data) d=dict.fromkeys(data,0)#賦初值全為0,key為data的元素,切去除重復(fù) for x in data:d[x]+=1 print("統(tǒng)計后的結(jié)果為:",d)#根據(jù)出現(xiàn)頻度排序:大->小 dd=sorted(d.items(),key=lambda item:item[1],reverse=True) print("排序后的結(jié)果為:",dd) print("并找到頻度最高的前三個:",dd[:3])#從一大堆數(shù)據(jù)中找出前三個:堆 import heapq print("使用堆來尋找前三個元素:",heapq.nlargest(3,((v,k) for k,v in d.items())))#3表示取前三個

????????方案一的運行結(jié)果:

????????方案二:使用標(biāo)準(zhǔn)庫collections中的Counter對象。

#方案二:使用collections中的Counter對象 from collections import Counter c=Counter(data) print("使用Counter得到的前三個結(jié)果是:",c.most_common(3))

??????????方案二的運行結(jié)果:

?

5.快速找到多個字典中的公共鍵(key)

????????方案:利用集合(set)的交集操作
????????? ??

from random import randint,sample #sample是隨機抽取 print("測試sample函數(shù):",sample("abcdefgh",randint(3,6)),end='\n\n')#隨機抽取3-6人#創(chuàng)建每一輪的球員,以及對應(yīng)球員踢得球數(shù) d1={k:randint(1,4) for k in sample("abcdefgh",randint(3,6))} d2={k:randint(1,4) for k in sample("abcdefgh",randint(3,6))} d3={k:randint(1,4) for k in sample("abcdefgh",randint(3,6))} print("第一場:",d1) print("第二場:",d2) print("第三場:",d3) dA=[d1,d2,d3] #方法一:利用生成器 ans=[k for k in dA[0] if all(map(lambda d:k in d,dA[1:]))] print("結(jié)果為:",ans,end="\n\n")#方法二:利用集合的交集 from functools import reduce #reduce的運用介紹 print("reduce的運用介紹。 10!=",reduce(lambda x,y:x*y,range(1,11))) print("方法二的運行結(jié)果:",reduce(lambda x,y:x and y,map(dict.keys,dA)))

????????運行結(jié)果:

總結(jié)

以上是生活随笔為你收集整理的Python进阶全系列的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。