Nó phụ thuộc. Vì có vẻ như bạn đang cố gắng học, tôi sẽ tránh sử dụng các thư viện nâng cao. Một cách sẽ là như sau:
def lett_to_num[word]:
replacements = [['a','2'],['b','2'],['d','5'],['e','5'],['n','5'],['g','7'],['h','7'],['i','7']]
for [a,b] in replacements:
word = word.replace[a,b]
return word
print lett_to_num['again']
Một cách khác gần với những gì bạn đang cố gắng thực hiện trong mã bạn đã thể hiện trong câu hỏi của mình:
def lett_to_num[word]:
out = ''
for ch in word:
if ch=='a' or ch=='b' or ch=='d':
out = out + '2'
elif ch=='d' or ch=='e' or ch=='n':
out = out + '5'
elif ch=='g' or ch=='h' or ch=='i':
out = out + '7'
else:
out = out + ch
return out
Cuối cùng, sau rất nhiều lần đóng đầu, tôi đã tìm thấy một cách để tránh gọi ord[]
, mà rõ ràng, là rất tốn kém. Dưới đây là mã kiểm tra và kết quả:
from timeit import timeit
from itertools import count
from string import ascii_lowercase
def alphabet_position_Headcrab[text]:
nums = [str[ord[x] - 96] for x in text.lower[] if x >= 'a' and x