0

我有一个对象列表。我有一个用户输入的字符串。我需要检查字符串是否在对象列表中。

例如:

string = "book"
object_list = [book, paper, pencil]
if eval(string) in object_list:
  #do this, etc

只要字符串在列表中,它就可以工作。如果字符串是别的东西,比如:string = 'ruler'

然后if eval(string)...语句给出错误: NameError: 'ruler' is undefined.

4

2 回答 2

2

不要使用 eval - 只是嗯,要么创建一个 dict 映射,例如:

dispatch = {'book': book, ...}

然后使用它并让回溯发生 - 更加可控......

或在最坏的情况下使用globals()

if globals()[string] in object_list:
    # do something...
于 2013-03-28T02:50:06.090 回答
1

如果您需要检查字符串是否在列表中,为什么不直接使用,

if string in object_list:
    #code
于 2013-03-28T02:46:51.787 回答