I have a specific text and need to return a number for the specific letter of the alphabet so like a = 1 , b = 2...
I got this code so far... but I do not know how to loop through a dict from a sentence to return( / print ) out the value inside of the sentence inserted
"The sunset sets at twelve o' clock" it returns "20 8 5 19 21 14 19 5 20 19 5 20 19 1 20 20 23 5 12 22 5 15 3 12 15 3 11"
def alphabet_position(text):
Text = text.lower()
Texting = ''.join([char for char in Text if char.isalpha()])
place_holder = []
StrNo = {
"a" : 1,
"b" : 2,
"c" : 3,
"d" : 4,
"e" : 5,
"f" : 6,
"g" : 7,
"h" : 8,
"i" : 9,
"j" : 10,
"k" : 11,
"l" : 12,
"m" : 13,
"n" : 14,
"o" : 15,
"p" : 16,
"q" : 17,
"r" : 18,
"s" : 19,
"t" : 20,
"u" : 21,
"v" : 22,
"w" : 23,
"x" : 24,
"y" : 25,
"z" : 26}
#Enter loop
#Tried using the following lines of code but didn't work
#listing = list(Texting)
#answer = "".join([StrNo[Ele] for Ele in listing])
alphabet_position("The sunset sets at twelve o' clock.")
Dictionary is returning an integer element and therefore you are trying to use .join method on integer list which is not possible. Convert integer to string first like this:
answer = "".join([str(StrNo[Ele]) for Ele in listing])
Or you can just use this short snippet:
def alphabet_position(text):
Text = text.lower()
Texting = ''.join([char for char in Text if char.isalpha()])
place_holder = []
listing = list(Texting)
answer = "".join([str(ord(Ele)-ord('a')+1) for Ele in listing])
print(answer)
alphabet_position("The sunset sets at twelve o' clock.")