将字符串的字符与字典的键匹配,如果匹配则将字符串转换为键的值
Matching characters of a string with keys of a dictionary and converting strings to values of keys if matched
我有一本 my_dict={'A':1, 'B':1,'C':1,'D':2,'E':2,'F':2,'G':3,'H':3,'I':3}
的字典
我想编写一个输入字符串的函数,如果长度为 5,则使用字典的键检查字符串的字符,如果匹配,则打印这些键的值,否则应该 return false。例如,如果我输入一个字符串“ABIFA”,它应该产生 11321。下面是我的代码,但它没有产生我期望的结果:
my_dict={'A':1, 'B':1,'C':1,'D':2,'E':2,'F':2,'G':3,'H':3,'I':3}
def string_to_number(mystring):
if len(mystring)==5:
result = [val for key, val in my_dict.items() if mystring in key]
print(str(result))
else:
return False
string_to_number("ABIFA") # should produce 11321
string_to_number("ABIFAA") # should return False
你能告诉我哪里错了吗?
您可以将每个 key/value 结果映射到 str
,然后使用生成器表达式
join
def string_to_number(mystring):
if len(mystring) == 5:
return ''.join(str(my_dict[i]) for i in mystring)
else:
return False
我有一本 my_dict={'A':1, 'B':1,'C':1,'D':2,'E':2,'F':2,'G':3,'H':3,'I':3}
的字典
我想编写一个输入字符串的函数,如果长度为 5,则使用字典的键检查字符串的字符,如果匹配,则打印这些键的值,否则应该 return false。例如,如果我输入一个字符串“ABIFA”,它应该产生 11321。下面是我的代码,但它没有产生我期望的结果:
my_dict={'A':1, 'B':1,'C':1,'D':2,'E':2,'F':2,'G':3,'H':3,'I':3}
def string_to_number(mystring):
if len(mystring)==5:
result = [val for key, val in my_dict.items() if mystring in key]
print(str(result))
else:
return False
string_to_number("ABIFA") # should produce 11321
string_to_number("ABIFAA") # should return False
你能告诉我哪里错了吗?
您可以将每个 key/value 结果映射到 str
,然后使用生成器表达式
join
def string_to_number(mystring):
if len(mystring) == 5:
return ''.join(str(my_dict[i]) for i in mystring)
else:
return False