如何提高python的遍歷效率?

時間 2021-06-02 01:41:37

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

)print

(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公斤的氮素還原,積累在小區內,可再種植禾本科作物。單作一年生豆科作物還原氮的數量顯著可以加倍。套種競爭對單作大豆根瘤功能有一定的影響,從幾個品種的觀察來看,一般地說,種植密度高,土...