Python词典仅返回1个条目?

时间:2016-08-01 04:00:56

标签: python dictionary return caesar-cipher

我已经编写了以下代码来打印大写/小写字母字典,其值可以移动整数。它一直只返回一个条目(例如,{Z:z}),即使我在for循环中使用print语句时,无论转移是什么,我都会看到整个字典按预期打印。关于为什么它只会返回一个条目的任何想法将不胜感激?

div

2 个答案:

答案 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