所以我想知道是否可以从列表中找到其名称的项目。我正在使用一种非常简单的编程语言,并且使用变量,有两个列表:
var_name = []
variable_data = []
如果您输入分配变量的命令,我已经创建了一种将变量分配给这些列表的算法。这是代码:
if 'var:> ' in user_input:
varnames.append(user_input.replace('var:> ', "").split(', ', 1)[0])
variable_data.append(re.sub(r'.*, ', "", user_input))
如果您想知道,我用语言编写变量的代码是:
var:> var_name, var_data
但是,对诸如打印和输入之类的代码进行编码不支持变量,因为我需要创建某种类型的转换器,该转换器可以从字符串输入的列表中获取项目。例如,如果在我的编程语言中有一个名为x的变量,您是否可以进行某种翻译,以从名为x的字符串中找到列表中的x项?
例如: 如果要打印变量,或者:
print:var> x
是否存在一种形式来创建某种转换器,以翻译x并将其带到变量名称列表中的“ x”项? 另外,我正在考虑为此使用字典,因此,如果它更简单,您也可以为该方法提供一种方法。
谢谢。
答案 0 :(得分:0)
尝试使用字典。它是将键转换为值的映射。 键必须是不可变的值,例如字符串,并且值可以是任何python数据类型。字典非常适合您的应用。
dict = {}
if 'var:> ' in user_input:
key = user_input.replace('var:> ', "").split(', ', 1)[0]
value = re.sub(r'.*, ', "", user_input)
dict[key] = value
# dict = {'var_name':'var_data'}
获取 x 的数据。使用正则表达式从输入中获取x。然后从字典中获取
key = re.search(r'var>(?P<key>.*)', d).group('key').strip()
value = dict.get(key, "Variable not defined yet")
# gives value of x if exist, else return "Variable not defined yet"