Python 如何根据输入更改字典的值?
初学者程序员在这里,我道歉- 这就是我要做的(插件板是一本字典): 然后打印新版本的插件板。因此,我试图将字典中每个键的值更改为它后面的键的值,但我不知道如何做到这一点。有什么帮助吗 (编辑)Python 如何根据输入更改字典的值?,python,dictionary,for-loop,key-value,Python,Dictionary,For Loop,Key Value,初学者程序员在这里,我道歉- 这就是我要做的(插件板是一本字典): 然后打印新版本的插件板。因此,我试图将字典中每个键的值更改为它后面的键的值,但我不知道如何做到这一点。有什么帮助吗 (编辑) 这实际上就是整个程序——当然这是一个更大项目的一部分,但这是我遇到的最大问题。x+1将引发TypeError,因为x(字符串)和1(整数)不能相互连接。但是还有其他的方法,比如使用和,它们是相反的 这是实现它的一种方法: def char_after(char): if char == 'z':
这实际上就是整个程序——当然这是一个更大项目的一部分,但这是我遇到的最大问题。
x+1
将引发TypeError
,因为x
(字符串)和1
(整数)不能相互连接。但是还有其他的方法,比如使用和,它们是相反的
这是实现它的一种方法:
def char_after(char):
if char == 'z': return 'a'
return chr(ord(char)+1)
for x in plugboard:
plugboard[x] = char_after(plugboard[x])
对于最后一个不在dict中的
x+1
,应该发生什么?是x
和整数吗?向我们展示plugboard
的内容,并解释您正在尝试做什么。您正在运行哪一版本的Python?'a'+1
实际上没有任何意义-如果您在火车上走到一个陌生人面前,问他“一加c是什么?”他们会认为您疯了。Python也认为你疯了。您需要将这些字母转换为数字,然后您仍然需要决定如何处理z
。可能是使用了%
模运算符的内容。尝试在网站上搜索[python]ceaar cypher
以获取一些想法。这是一个我绝对没有想到的非常好的想法-我会尝试一下,如果有任何问题,会回来的,谢谢大家
plugboard = {
'a':'a',
'b':'b',
'c':'c',
'd':'d',
'e':'e',
'f':'f',
'g':'g',
'h':'h',
'i':'i',
'j':'j',
'k':'k',
'l':'l',
'm':'m',
'n':'n',
'o':'o',
'p':'p',
'q':'q',
'r':'r',
's':'s',
't':'t',
'u':'u',
'v':'v',
'w':'w',
'x':'x',
'y':'y',
'z':'z'
}
for x in plugboard:
plugboard[x] = plugboard[x+1]
print(plugboard)
def char_after(char):
if char == 'z': return 'a'
return chr(ord(char)+1)
for x in plugboard:
plugboard[x] = char_after(plugboard[x])