1樓:yishen chen
'''只是把你演算法裡最明顯的低效的東西改了思路沒變。。。
'''file1
=open
("compose.ucs"
,'r'
)# 把重複利用的RE挪到迴圈外編譯
line_re=re
.compile(r
'word=([a-z,A-Z]*-*.*\'*[a-z,A-Z]*))
word_re=re
.compile(r
'[A-Z].*'
)for
line
infile1
:match=re
.search
(line_re,f
=',line)
ifmatch
isnot
None
:word
=match
.group(0
)wordlist.(
word
)match=re
.match
(word_re
,word)if
match
andlen
(word
)>=2and
word
.istitle
():titlewordlist.(
word
)# 用set代替迴圈
#print(wordlist)
#for element1 in titlewordlist:
# for element2 in wordlist:
if element1 == element2.title():
removelist
=set
(wordlist)&
set(w.
title
()forwin
wordlist
(removelist)
2樓:maxSonic
for element1 in titlewordlist:
這個為啥不用list comprehension?res = [e1 for e1 in titlewordlist for e2 in wordlist if e1 == e2]
file1 = open("compose.ucs",'r')lines = file1.readlines()for line in lines:
這段也可以list comprehensionwordlist = [re.findall(r'word=([a-z,A-Z]*-*.*\'*[a-z,A-Z]*),f=',line) for line in lines ]
titlewordlist = [w for w in wordlist if re.match(r'[A-Z].*',w[0]) and len(w[0]) >=2 and w[0].
istitle()]
3樓:
先Profile,不然都是耍流氓
幾個點:
1.如果只是要word[0], 不要用find_all,效率低下,match第乙個就好
2.後面那個兩層迴圈怎麼回事,搞成兩個set直接intersection一下,輕鬆愉快
如何提高練琴的效率?
Eleanore 拿鋼琴來說。1.注重手指練習 哈農 音階與琶音這種 要多遍,手痠也不能停,就彈慢的。一次要大概幾百遍吧。這是提高手指力量與靈活度的利器。但是也適可而止,防止手受傷。2.樂曲的話,哪段不熟或者不精就練哪段。3.找個靠譜的老師。4.如果手疼得抬不起來,要請教老師是否有相似經歷或者看醫生...
如何提高學習效率
toberick 學習的效率在我看來分為兩種 一種是獲取知識的效率,另一種就是做題得分的效率。既然你都說了你現在初三,剛復讀,那麼我認為現在做題得分的效率對你來說更為重要。所以我在這也就簡單說說做題得分的效率吧。我今年大一,發揮平平常常上的乙個中流985。下面我就分學科給你說說如何提高做題得分的效率...
如何提高固氮效率?
生物法固氮?電化學法固氮?植物根瘤菌固氮?請指出 植物固氮 通過豆科作物小區固氮量計算表明,每年一季豆科作物每公頃有19公斤的氮素還原,積累在小區內,可再種植禾本科作物。單作一年生豆科作物還原氮的數量顯著可以加倍。套種競爭對單作大豆根瘤功能有一定的影響,從幾個品種的觀察來看,一般地說,種植密度高,土...