如何检测相同键不同值的插入到字典中

2024-04-19 05:47:08 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我解决这个问题的目标是,给定两个字符串,str1str2,创建一个字典,使得str1中的字符是键,str2中相应的字符是值。你知道吗

crackthecode('apple','byytr')返回 {'a':'b','p':'y','l':'t','e':'r'} 如果不一致,即crackthecode('apple','byptr'),则返回 {},一本空字典。你知道吗

这是我的代码,我只是不知道如何做不一致的情况。你知道吗

另外,我不能用zip来回答这个问题。你知道吗

下面是我的代码。你知道吗

def crackthecode(str1, str2):
  final = {}
  x = 0
  for i in list(str1):
    final[i]=str2[x]
    x = x + 1
  return final

感谢您的帮助,谢谢!你知道吗


Tags: 字符串代码apple目标字典def情况zip
1条回答
网友
1楼 · 发布于 2024-04-19 05:47:08

您可以检查字典中是否已经存在键,并将值与新字符进行比较。如果它们不相等,则返回一个空字典。否则,将键值对添加到字典中。你知道吗

您可以使用这个使用EAFP principle的代码。你知道吗

>>> def crackthecode(str1, str2):
    final = {}
    for i, key in enumerate(str1):
        try:
            if final[key] != str2[i]:
                return {}
        except KeyError:
            final[key] = str2[i]
    return final

>>> crackthecode('apple','byytr')
{'a': 'b', 'p': 'y', 'l': 't', 'e': 'r'}
>>> crackthecode('apple','byptr')
{}

编辑:不使用enumerate的相同代码(由OP请求)

def crackthecode(str1, str2):
    final = {}
    for i in range(len(str1)):
        try:
            if final[str1[i]] != str2[i]:
                return {}
        except KeyError:
            final[str1[i]] = str2[i]
    return final 

相关问题 更多 >