1樓:
採取的演算法是:將第一和除其之外的每個字母對比,相同即記下替換後的word,依次下推(第二和第
三、第四。。。),逐個修改對映list
# coding:utf8
if __name__ == '__main__':
words = ['school','google','getfileinfo','cherrypy','pypy']
print words
tmps = words #對映list,存放替換大小寫後的list
index = 0 #list遍歷到第幾個了
for wds in words: #遍歷words
i = 0 #記錄list下的每個word長度
j = 0 #記錄每個word有幾個相同的字母數
#下面採取的演算法是:將第一和除其之外的每個字母對比,相同即記下替換後的word,依次下推(第二和第
三、第四。。。),逐個修改對映list:tmps
for wd_a in wds[i:]:
for wd_b in wds[i+1:]:
if wd_a == wd_b:
# print wds, wd_a.upper()
j += 1
if j > 1: #相同字母超過一個的,需要沿用之前修改好的word,否則最後記錄的將是最後一個相同字母轉大寫的word
tmp = tmp.replace(wd_a, wd_a.upper(), 1)
else:
tmp = wds.replace(wd_a, wd_a.upper(), 1)
# print tmp
tmps[index] = tmp #修改對映list:tmps
i += 1
index += 1
print tmps
執行結果:
['school', 'google', 'getfileinfo', 'cherrypy', 'pypy']
['school', 'google', 'getfileinfo', 'cherrypy', 'pypy']
演算法二:
測試了下執行時間,words在145個時,執行時間對比:
time2: 0.0160000324249
time2: 0.0150001049042
time2: 0.0149998664856
time1: 0.0160000324249
time1: 0.0159997940063
time1: 0.0150001049042
可見演算法二的最少執行時間比演算法一少,要快
2樓:
'school'.replace('o', 'o', 1) #只替換一次, replace第三個引數代表替換的次數
python中如何對多個字元快速替換
3樓:折柳成萌
python中快速進行多個字
bai符替換的方法小結du
先給出結論:zhi
要替換的字元dao數量不多時,可內以直接鏈式replace()方法進行容替換,效率非常高;
如果要替換的字元數量較多,則推薦在 for 迴圈中呼叫 replace() 進行替換。
可行的方法:
1. 鏈式replace()
?1string.replace().replace()1.x 在for迴圈中呼叫replace() 「在要替換的字元較多時」
2. 使用string.maketrans3. 先 re.compile 然後 re.sub
python如何使用re模組的sub函式實現把一串字母或者數字組合的字串,全部替換成*
4樓:匿名使用者
\w沒有加引號
print re.sub("\w","*",__string3)
含有兩個無字的詞,含有兩個無字的四字詞
hzq秋水 無背無側 不能辨清背叛傾仄之人。無邊無際 際 邊緣處。形容範圍極為廣闊。無邊無限 開闊得望不到盡頭。無邊無涯 形容範圍極為廣闊。無邊無沿 形容範圍極為廣闊。同 無邊無際 無邊無垠 形容範圍極為廣闊。同 無邊無際 無顛無倒 猶言顛顛倒倒。指精神錯亂。無,語助詞,無義。無適無莫 適 厚 莫 ...
資料庫在建立查詢時如果兩個表裡有相同的欄位應該選擇哪個 有區別嗎
當然有區別了,而且區別很大。這麼跟你說吧,我舉個例子,你一看就明白了。例1 我要查詢學期末總共參與考試的學生成績列表,按成績升序select a.b.from 學生表 a left join 成績表 b on a.學員id b.學員id and isnull b.成績,1 1 order by b....
兩個相同的光滑弧形槽,為凸形,為凹形,兩個相同的小球分別進入兩弧形槽的速度都為V,運動到槽的
我的新蘭 解 1 在凸形光滑弧形槽中運動的小球,從以速度v進入弧形槽到運動到最高點的過程中,動能轉化為重力勢能,運動速度減小,小於初速度 在從最高點運動到槽末端的過程中,小球的重力勢能再化為動能,到達槽末端時,速度由增大為到初速度v 2 在凹形光滑弧形槽中運動的小球,從以速度v進入軌道到運動到最低點...