python - 你能从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”项?另外,我正在考虑为此使用字典,所以如果它更容易,你也可以为此制定一个方法。
谢谢。
解决方案
尝试使用字典。它是一个将键转换为其值的映射。键必须是不可变的值,如字符串,值可以是任何 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"
推荐阅读
- java - Spring data JPA:如何使用抽象实体
- php - 使用简码在任何地方显示 WooCommerce 优惠券输入字段
- sap - SAP PowerDesigner - 使用 SQL 更改模型
- linux - 在 linux 中使用 display 命令显示所有 .png 图像
- python - ValueError:字典更新序列元素 #0 的长度为 28;2 是必需的
- arm - GPU ARM Mali 和 OpenCL 驱动程序
- javascript - 将Javascript计算输出到html
- javascript - React:如何对排序数据进行分页
- javascript - JS setTimeout 没有延迟
- angular - Angular 6:如何获取响应状态码