Python的字典中的密钥无法正常工作

时间:2017-10-03 03:10:01

标签: python python-3.x

我正在编写一个编程问题,用户输入可以定义变量,如下所示:

length = 1

当用户执行此操作时,我将该对存储在字典中:

{'length': '1'}

问题是,当我后来尝试检查词典中是否存在某个键时,我总是得到False,即使它肯定在那里。这是我的代码:

import math

def main():
    curr_formula = input()
    substitutions = dict()

    while(curr_formula != "0"):
        if("=" in curr_formula):
            split_formula = curr_formula.split("=")
            substitutions[split_formula[0]] = split_formula[1]

        curr_split = curr_formula.split(" ")
        for i in range(len(curr_split)):

            # this if statement never runs for some reason
            if(curr_split[i] in substitutions):
                curr_split[i] = substitutions[curr_split[i]]

        print(''.join(curr_split))

        curr_formula = input()
main()

输入“length = 1”然后“length + 2”应打印“1 + 2”,但不能检测到密钥已存在。对此问题的任何见解将不胜感激!

1 个答案:

答案 0 :(得分:2)

当您在'='上拆分时,在第一个词之后和第二个词之前有一个空格。

>>> 'length = 1'.split('=')
['length ', ' 1']

当你在' '上拆分时,它已被移除。

>>> 'length = 1'.split(' ')
['length', '=', '1']

因此,你的词典中的键可能不同。