【问题标题】:Matching characters of a string with keys of a dictionary and converting strings to values of keys if matched将字符串的字符与字典的键匹配,如果匹配,则将字符串转换为键的值
【发布时间】:2021-12-28 21:00:00
【问题描述】:

我有一本my_dict={'A':1, 'B':1,'C':1,'D':2,'E':2,'F':2,'G':3,'H':3,'I':3} 的字典 我想编写一个输入字符串的函数,如果长度为 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

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

【问题讨论】:

    标签: python list dictionary list-comprehension


    【解决方案1】:

    您可以使用生成器表达式将每个键/值结果映射到 strjoin

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-05-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-11
      相关资源
      最近更新 更多