一、列表,字典,集合解析python
from random import randint #列表解析,選出大於0的元素 data=[randint(-10,10)for i in range(10)] result1=filter(lambda x:x>=0 ,data) result2=[x for x in data if x>=0]#最快 for x in data:#最慢 if x>=0: print(x) #字典解析,value大於80 d = {x:randint(60,100) for x in (1,20)}#構造字典 result3={k:v for k,v in d.items() if v>80} print(result3) #集合解析
#集合中科院被3整除的元素
s=set(data)
result4={x for x in s if x%3 ==0}
二、爲元組命名dom
#可命名元組 from collections import namedtuple #第一種方式 student = ('BOB',16,'male','810833355@qq.com') name,age,sex,email = range(4) print(student[name])
from collections import namedtuple #第一種方式 # student = ('BOB',16,'male','810833355@qq.com') # name,age,sex,email = range(4) # print(student[name]) student= namedtuple('student',['name','age','sex','email']) s=student('jim',16,'male','810823255@qq.com') print(s,'==========',s.name)
執行結果如圖3d
三、統計序列中元素出現頻度blog
from random import randint data = [randint(1,20) for x in range(50)]#隨機序列,計算每一個元素出現的次數 c=dict.fromkeys(data,0)#0是初始值,將;將列表中的元素做爲字典的key for x in data: c[x] +=1
from random import randint data = [randint(1,20) for x in range(50)]#隨機序列,計算每一個元素出現的次數 from collections import Counter c2 = Counter(data) c2.most_common(3)#哪三個元素出現最多 print(c2,c2.most_common(3))
結果如圖排序
詞頻統計ip
import re from collections import Counter txt = open('a.txt').read() c1=re.split('\w',txt)#對非字母進行分割,而後傳進Counter result = Counter(c1)#將列表傳進去 res = result.most_common(3)#出現次數最多的三個單詞
四、根據字典中值的大小,對字典中的項進行排序內存
from random import randint d1={x: randint(60,100) for x in 'abcxyz'}#六我的分別叫abcxyz #1 print(sorted(zip(d1.values(),d1.keys())))#元組組成的列表,比較元組的第一個元素 #2 print(sorted(d1.items(),key=lambda x :x[1]))
結果如圖字符串
五、如何快速找到多個字典裏面的公共鍵it
from random import randint,sample #sample是取樣 #1 sam=sample('abcdef',randint(3,6))#隨機選取'abcdef'三到6個樣本 s1 ={x:randint(1,4) for x in sample('abcdef',randint(3,6))} s2={x:randint(1,4) for x in sample('abcdef',randint(3,6))} s3={x:randint(1,4) for x in sample('abcdef',randint(3,6))} print(s1,s2,s3) for k in s1: if k in s2 and k in s3: print(k)
結果如圖io
第二種方法
print(s1.keys() & s2.keys() & s3.keys())#python2是viewkeys,這裏取交集 from functools import reduce print(reduce(lambda a,b:a & b,map(dict.keys,[s1,s2,s3])))#若是鍵多能夠這樣,python2是viewkeys
6,、如何讓字典有序
from collections import OrderedDict d= OrderedDict() d['jib']=(1,35) d['bob']=(2,5) d['bbc']=(3,5) for i in d: print(i)
結果如圖
七、拆分含有多個分隔符的字符串
s='ab;cd|efgh|hi,jkl|topq;rst,vww\atex' t=[] res = s.split(';') map(lambda x: t.extend(x.split('|')),res) print(t)
第二種方法
import re s='ab;cd|efgh|hi,jkl|topq;rst,vww\atex' print(re.split(r'[,;\|]',s))
結果如圖
八、判斷字符串開頭
九、正則調整文本格式
import re #1 l=['2016-05-23','2016-06-11','2016-07-12'] l1='2016-05-23' print(re.sub('(\d{4})-(\d{2})-(\d{2})',r'\2/\3/\1',l1))
結果如圖
第二種方法
import re #1 l=['2016-05-23','2016-06-11','2016-07-12'] l1='2016-05-23' print(re.sub('(?P<year>\d{4})-(?P<month>\d{2})-(?P<day>\d{2})',r'\g<month>/\g<day>/\g<year>',l1))
十、字符串拼接
第一種方法
不過這種方法浪費內存,下面是第二種方法,用join
十一、調節字符串居中,左右對齊
s= 'abc' print(s.ljust(20)) print(s.ljust(20,'+')) print(s.center(20,'+'))
結果如圖
ling另一種方法如圖
十二、去掉不須要的字符串
去除空格
去除指定字符
s= 'abc__++++' print(s.strip('_+')) s1 = 'abc:1224' print(s1[:3]+s1[4:])
結果如圖
s= '\tadhi\sfds\sdfds\sdfds\gf\gs\ggg' print(re.sub('[\t\g\f\d]','',s))