2016-01-25 95 views
-4

假設有一個字符串(「Hello!Python is a great language!」),那麼我將如何轉換Hello!進入hijkefghlmnolmnoopqr!如果h = hijk e = efgh l = lmno o = opqrs等字符串的其餘部分?Python字符串轉換器;如何在python中轉換字符串

+0

即對於字符串中的每個字母,您想要在字母表中插入三個字母? – kay

+0

如果是這樣,x,y,z會發生什麼情況? – Jasper

+3

「歡迎使用堆棧溢出,請顯示您嘗試過並且沒有工作的內容」。 – tglaria

回答

0
LETTERS = "abcdefghijklmnopqrstuvwxyzabc" 

def translate_char(ch): 
    i = LETTERS.find(ch.lower()) 
    if i == -1: 
     return ch 
    else: 
     return LETTERS[i:i + 4] 

def translate_string(s): 
    return "".join(translate_char(ch) for ch in s) 

print(translate_string("Hello!")) # => hijkefghlmnolmnoopqr! 
+0

這很好用!謝謝 –

+2

也許downvoter想解釋一下? –

+0

我相信'ord'可以用來避免在'ch.lower()'上進行線性('O(n)')搜索,但其影響可以忽略不計 –

2
subs = {} 
alpha = 'abcdefghijklmnopqrstuvwxyzabc' 
for i in range(26): 
    subs[alpha[i]] = alpha[i:i+4] 
s = "Hello! Python is a great language!" 
s = ''.join(subs.get(c, c) for c in s.lower())