Python Ajouter au dictionnaire de la boucle
Cette fonction est censé ajouter un nom et un numéro pour le dictionnaire 'répertoire' quand je lance la boucle, mais pour une raison que je ne peux pas le faire fonctionner. Toutes les idées sur pourquoi pas? Merci beaucoup!
phoneBook = dict()
def addNumber(name, number):
for i in phoneBook:
if i == name:
print 'error'
else:
phoneBook[name] = number
OriginalL'auteur bugsyb | 2014-10-08
Vous devez vous connecter pour publier un commentaire.
Vous n'avez pas vraiment besoin de la boucle à tous, vous pouvez simplement utiliser le
in
mot-clé pour vérifier le nom de contre la de clés existant dans le dictionnaire.Parce que même si le numéro existe, il est seulement de match, c'est la comparaison à l'encontre de cette clé, toutes les autres touches ne correspondent pas
name
, donc il va remplacer la valeur existante pourname
. Et pire, il va remplacer cette valeur N fois (où N est le nombre de clés) pour la même raison.OriginalL'auteur CoryKramer
pourquoi s'embêter
ce seront exécutées dans l'ordre inverse par le biais de la liste de sorte que la première apparition du nom sera celui qui est stocké dans le dictionnaire
il faut plus de temps pour vérifier que il suffit de l'insérer ... même si elle se retrouve sur écrit
pour répondre à votre question cependant
votre code d'origine n'a pas de travail parce que votre autre était à l'intérieur de la forloop essentiellement l'ajout de l'entrée si aucun nom dans le livre ne correspond pas au nom inséré
vous pouvez y remédier assez facilement, par la sortie de la fonction lorsqu'une correspondance est trouvée... et ne pas ajouter le nom du dictionnaire jusqu'à ce que vous avez vérifié tous les noms
OriginalL'auteur Joran Beasley