首页 > 解决方案 > 你能从python中的项目名称的列表中找到一个项目吗?

问题描述

所以我想知道是否可以通过名称从列表中找到一个项目。我正在研究一种非常简单的编程语言,并且使用变量,有两个列表:

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”项?另外,我正在考虑为此使用字典,所以如果它更容易,你也可以为此制定一个方法。

谢谢。

标签: pythonstringlist

解决方案


尝试使用字典。它是一个将键转换为其值的映射。必须是不可变的值,如字符串,可以是任何 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"

推荐阅读