2024-04-25 11:38:51 发布
网友
当我运行循环时,这个函数应该在字典'phoneBook'中添加一个名字和号码,但是由于某些原因,我无法让它工作。为什么不呢?谢谢!
phoneBook = dict() def addNumber(name, number): for i in phoneBook: if i == name: print 'error' else: phoneBook[name] = number
实际上根本不需要循环,只需使用in关键字对照字典中的现有键检查名称即可。
in
phoneBook = dict() def addNumber(name, number): if name in phoneBook: print 'error' else: phoneBook[name] = number
何必费心
people = ((data["name"],data["number"]) for data in json.loads(some_list)[::-1]) phoneBook = dict(people)
这将以相反的顺序在列表中运行,因此名称的第一个匹配项将是存储在字典中的名称
检查的时间比插入要长。。。即使最后写得太多
但是要回答您的问题
您的原始代码不起作用,因为您的else在forloop中,如果书中的任何名称与插入的名称不匹配,那么实际上就是添加了条目
您可以很容易地修复它,当找到匹配项时退出函数。。。在你检查完所有的名字之前不要把名字加到字典里
phoneBook = dict() def addNumber(name, number): for i in phoneBook: if i == name: print 'error' return phoneBook[name] = number addNumber("james",56) addNumber("Tommy",26) addNumber("james",77)
实际上根本不需要循环,只需使用
in
关键字对照字典中的现有键检查名称即可。何必费心
这将以相反的顺序在列表中运行,因此名称的第一个匹配项将是存储在字典中的名称
检查的时间比插入要长。。。即使最后写得太多
但是要回答您的问题
您的原始代码不起作用,因为您的else在forloop中,如果书中的任何名称与插入的名称不匹配,那么实际上就是添加了条目
您可以很容易地修复它,当找到匹配项时退出函数。。。在你检查完所有的名字之前不要把名字加到字典里
相关问题 更多 >
编程相关推荐