Ich habe den folgenden Code geschrieben, um ein Groß-/Kleinbuchstaben-Wörterbuch zu drucken, dessen Werte um eine ganze Zahl verschoben werden können. Es gibt nur einen Eintrag zurück (z. B. {Z: z}), obwohl ich, wenn ich eine print-Anweisung in der for-Schleife verwende, das gesamte Wörterbuch wie erwartet ausgedruckt sehe, egal, um was für eine Verschiebung es sich handelt. Irgendwelche Gedanken darüber, warum es nur einen Eintrag zurückgeben würde, würden sehr geschätzt werden?Python-Wörterbuch nur 1 Eintrag zurückgeben?
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
Sie ersetzen Ihr Diktat durch ein neues Ein-Eintrag-Diktat. – user2357112