Python 3.x 将元音转换为整数,将整数转换为元音
我正在完成一个有两个功能的任务,编码和解码。encode是将字符串中的所有元音转换为它们对应的数字(参见代码中的字典),decode是将字符串中的所有整数转换回它们对应的元音 到目前为止,我的代码是:Python 3.x 将元音转换为整数,将整数转换为元音,python-3.x,Python 3.x,我正在完成一个有两个功能的任务,编码和解码。encode是将字符串中的所有元音转换为它们对应的数字(参见代码中的字典),decode是将字符串中的所有整数转换回它们对应的元音 到目前为止,我的代码是: vowels = {'a': '1', 'e': '2', 'i': '3', 'o': '4', 'u': '5'} def encode(word1): new_word = "" for le
vowels = {'a': '1',
'e': '2',
'i': '3',
'o': '4',
'u': '5'}
def encode(word1):
new_word = ""
for letter in word1:
if letter.lower() not in vowels:
new_word += letter
else:
new_word += letter.replace(letter, vowels[letter])
return new_word
print(encode('hello'))
def decode(word2):
new_word1 = ""
for letter in word2:
if letter.lower()not in vowels:
new_word1 += letter
elif letter.isdigit():
new_word1 += letter.replace(letter, vowels[letter])
return new_word1
print(encode('h2ll4'))
----------------------------------------------
>>> h2ll4
>>> h2ll4
我已经成功地完成了第一个函数的编码,但无法完全正确地完成第二个函数。我试图获取返回用于编码的值的键,但是我可以获取返回用于解码的键的值吗
我的问题是:
我可以得到一个字典值来返回键吗,就像返回键一样
可以返回值吗?
如何检查字符串1中的整数
到5,然后返回元音?
另外,什么样的方法才是最有效的
最像蟒蛇的方法?我的编码功能可以更短吗?
您可以假设字符串中只显示1到5的整数
谢谢更简洁的方法是使用列表理解,检查单词中的每个字符是否为元音,如果是元音,则用相应的整数替换。解码可以通过使用反向字典的相同方式完成:
vowels = {'a': '1',
'e': '2',
'i': '3',
'o': '4',
'u': '5'}
inv_vowels = { i : v for v, i in vowels.items() }
def encode(word):
return ''.join(vowels[c] if c in vowels else c for c in word)
def decode(word):
return ''.join(inv_vowels[c] if c in inv_vowels else c for c in word)
print(encode('hello'))
print(decode(encode('hello')))
输出:
h2ll4
hello
H7ll4
HEllo
如果你想在word中使用大写字母,你可以用c.lower替换列表中的c
但请注意,解码时,编码的元音将始终转换为小写字符,即
print(decode(encode('HEllo')))
给予
你可以通过扩展字典来解决这个问题,包括大写元音,而不改变输入字母的大小写,例如
vowels = {'a': '1',
'e': '2',
'i': '3',
'o': '4',
'u': '5',
'A': '6',
'E': '7',
'I': '8',
'O': '9',
'U': '0'}
inv_vowels = { i : v for v, i in vowels.items() }
def encode(word):
return ''.join(vowels[c] if c in vowels else c for c in word)
def decode(word):
return ''.join(inv_vowels[c] if c in inv_vowels else c for c in word)
print(encode('HEllo'))
print(decode(encode('HEllo')))
输出:
h2ll4
hello
H7ll4
HEllo
伟大的谢谢你,这正是我想知道的