Re: [討論] 字母平移的程式改進
※ 引述《Quietlake (ekalteiuQ)》之銘言:
: 大家好,一直以來我寫程式就是想辦法得到答案,可是都不清楚如何改進,
: 因為自己懂的東西總是很少,所以想到說把自己的方法po上來,來看大家
: 有沒有些不同的想法,不知道這種文是否可以po,有問題請告訴我,我會改進。
: --------------------------------------------------------------------
: 題目:將一個字串的字母上移2個
: 範例:輸入為abc時,輸出為cde
: code:
: temp = input("Enter a string: ")
: i = len(temp)
: temp = list(temp)
: j = 0
: while(j<i):
: temp[j] = chr(ord(temp[j]) + 2)
: j += 1
: temp = ''.join(temp)
: print(temp)
如果追求速度,字串處理盡量不用 join,改成 translate
from timeit import timeit
timeit("''.join(chr(ord(i) + 2) for i in temp)", "temp='asdfghjkl'")
# 2.7016338949604233
timeit("temp.translate(maketrans(lowercase, shift))",
'''from string import maketrans, lowercase
shift = lowercase[2:]+lowercase[:2]
temp = "asdfghjkl"
''')
# 0.4455782200311802
## 單跑 translate
## 0.11883597813539382
P.S.
新手文不是不能 PO,寫清楚需要解決什麼問題,你自己對這問題做過哪些思考和努力,
符合板規,大家都會很歡迎。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 125.227.236.144
※ 文章網址: http://www.ptt.cc/bbs/Python/M.1403847619.A.A9E.html
※ 編輯: ck574b027 (125.227.236.144), 06/27/2014 13:44:42
→
06/27 17:15, , 1F
06/27 17:15, 1F
→
06/27 17:16, , 2F
06/27 17:16, 2F
推
06/27 22:37, , 3F
06/27 22:37, 3F
→
06/27 22:38, , 4F
06/27 22:38, 4F
→
06/27 22:38, , 5F
06/27 22:38, 5F
→
06/27 22:41, , 6F
06/27 22:41, 6F
→
06/27 22:41, , 7F
06/27 22:41, 7F
→
06/27 22:44, , 8F
06/27 22:44, 8F
→
06/28 00:02, , 9F
06/28 00:02, 9F
→
06/28 00:04, , 10F
06/28 00:04, 10F
※ 編輯: ck574b027 (123.194.2.92), 06/28/2014 00:13:14
討論串 (同標題文章)