【问题标题】:Can you find an item from a list from the item's name in python?你能从python中的项目名称的列表中找到一个项目吗?
【发布时间】:2020-10-03 02:01:15
【问题描述】:

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

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

谢谢。

【问题讨论】:

  • you could make a method for that too. - 欢迎来到 SO。这不是讨论论坛或教程。请使用tour 并花时间阅读How to Ask 以及该页面上的其他链接。

标签: python string list


【解决方案1】:

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

【讨论】:

  • 您能帮我解释一下吗?我是 python 的初学者,所以我不太了解这些东西。
  • 我什么都没做。我只是将数据类型从列表更改为字典。其余代码与您的相同。如果你想学习字典,互联网上有很好的资源。 here
猜你喜欢
  • 2017-09-28
  • 1970-01-01
  • 1970-01-01
  • 2021-11-23
  • 2021-01-16
  • 1970-01-01
  • 2022-12-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多