所以我們有兩個列表,a,它只由字母字符組成,b,它是用戶對列表的輸入。我正在嘗試更改b關于它們在 中的索引a的字母字符,而不更改用戶輸入中的非字母字符。alphabet=["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"]a=input("Please enter a string: ")b=list(a)f=[]for elem in b: if elem in alphabet: c=alphabet.index(elem) d=(len(alphabet)-c) e=alphabet[d-1] f.append(e)mystring=''.join(f)print(mystring)我希望 abc123 的輸出是 zyx123
2 回答
一只斗牛犬
TA貢獻1784條經驗 獲得超2個贊
考慮使用maketrans&str.translate似乎與您正在做的事情非常匹配:
intab = "abcdefghijklmnopqrstuvwxyz"
outtab = intab[::-1]
trantab = str.maketrans(intab, outtab)
str = "abc123";
print (str.translate(trantab))
>> zyx123
在上面,outtab變量只是使用python切片語法逆序的intab變量[::-1]
Maketrans 將一個列表中的所有字符轉換為另一個列表中等效定位的字符。不在第一個列表中的任何字符都將單獨保留。
添加回答
舉報
0/150
提交
取消
