繁体   English   中英

将字符串的字符与字典的键匹配,如果匹配,则将字符串转换为键的值

[英]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}我想写一个 function 输入一个字符串,如果长度为 5,则使用字典的键检查字符串的字符,如果匹配,则打印这些键的值, 否则应该返回 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

你能告诉我我哪里出错了吗?

您可以 map 每个键/值结果到str然后使用生成器表达式join

def string_to_number(mystring):
    if len(mystring) == 5:
        return ''.join(str(my_dict[i]) for i in mystring)
    else:
        return False

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM