检查给定密钥是否已存在于字典中但允许变化

时间:2015-04-27 16:23:14

标签: python search dictionary python-3.3

用这本词典:

class_1 = {'Bob' : [3,4,7], 
       'Jim' : [4,1,3],
       'Greg' : [7,3,9],
       'Fred' : [10,5,3],
       'Jim' : [3,7,9],
       'Jeff' : [2,9,3]}

如何禁止'Jim'的输入,但允许输入'Jim_2'等内容?

使用if name in class_1:不允许输入变体输入,谢谢。

3 个答案:

答案 0 :(得分:1)

字典中不允许重复键。当您插入字典时,字典将检查项目是否已经存在,如果是该条目的值将被更新。如果它不存在,它将被添加到字典中。

如果你想禁止输入某些键,你需要编写一个辅助函数来检查项目是否存在,如果是,则不要将更新写入字典。

答案 1 :(得分:0)

如果密钥不在字典中,则以下内容只会添加key: value对:

if new_name not in class_1:
    class_1[new_name] = new_data

答案 2 :(得分:0)

    user_input = raw_input("Name: ")
    class_1 = {'Bob' : [3,4,7], 
           'Jim' : [4,1,3],
           'Greg' : [7,3,9],
           'Fred' : [10,5,3],
           'Jim' : [3,7,9],
           'Jeff' : [2,9,3]}

    if any(user_input.startswith(k) for k in class_1.keys()):
        print "Valid input!"
    else:
        print "Invalid input!"

如果您想获得输入值与字典中的键之间的平均距离(差异),您可以尝试查看fuzzy searching。有一些流行的库专门用于这种字符串比较。

相关问题