我已经编写了以下代码来打印大写/小写字母字典,其值可以移动整数。它一直只返回一个条目(例如,{Z:z}),即使我在for循环中使用print语句时,无论转移是什么,我都会看到整个字典按预期打印。关于为什么它只会返回一个条目的任何想法将不胜感激?
div
答案 0 :(得分:2)
不是将alpha dict设置为每次使用的新的一个条目dict,而是从一个空的dict开始,并在你想要的键上添加值。
#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
答案 1 :(得分:2)
您正在为每个循环创建一个新字典而不是附加它。你想为每个循环的字典创建一个新的key - value
对。
for i in letters:
if i.islower() == True:
alphaDict[i] = letters[(letters.index(i) + shift) % 26]}
else:
alphaDict[i] = letters[((letters.index(i) + shift) % 26) + 26]}
return alphaDict