J'ai écrit le code suivant pour imprimer un dictionnaire alphabétique majuscule/minuscule dont les valeurs peuvent être décalées d'un entier. Il continue de renvoyer une seule entrée (par exemple, {Z: z}), même si lorsque j'utilise une instruction print dans la boucle for, je vois le dictionnaire entier imprimé comme prévu, quel que soit le décalage. Des idées sur pourquoi il ne retournerait qu'une seule entrée seraient grandement appréciées?Dictionnaire Python ne renvoyant qu'une seule entrée?
def dictionary(self, shift):
'''
For Caesar cipher.
shift (integer): the amount by which to shift every letter of the
alphabet. 0 <= shift < 26
Returns: a dictionary mapping a letter (string) to
another letter (string).
'''
#create empty dictionary
alphaDict = {}
#retrieve alphabet in upper and lower case
letters = string.ascii_lowercase + string.ascii_uppercase
#build dictionary with shift
for i in range(len(letters)):
if letters[i].islower() == True:
alphaDict = {letters[i]: letters[(i + shift) % 26]}
else:
alphaDict = {letters[i]: letters[((i + shift) % 26) + 26]}
return alphaDict
Vous continuez à remplacer votre dict par une nouvelle dictée à entrée unique. – user2357112