Python 语法:如何检查返回值中是不是存在“x”?

Posted

技术标签:

【中文标题】Python 语法:如何检查返回值中是不是存在“x”?【英文标题】:Python Syntax: How do I check if 'x' exists in the return value?Python 语法:如何检查返回值中是否存在“x”? 【发布时间】:2021-08-11 13:50:37 【问题描述】:

我有一个 Python 语法问题。

如果 result() 传入 3 个参数,因此返回 (x, y, z) 形式的内容,如何检查返回值中是否存在“x”?

我想检查函数 result() 中的 thing、thing2 或 thing3 是否为“X”。现在,我正在写“虽然结果中的'X':”......但我认为我这样做不正确,因为结果不是字符串。

我只是想看看结果,可能是 (a,b,c) 或 (1, 2, 3) 或 (x, y, z) 是否包含“x”。例如,如果结果是 (x,y,z) 并且我询问结果是否包含“x”,它将返回 true。如果我问同样的问题,结果是 (a, b, c),它会返回 false。我该怎么做呢?

def result(thing, thing2, thing3):
  # Returns a new thing (deepcopied) with thing3 space taken by thing2
  new_thing = thing.copy()
  new_thing[thing3] = thing2
  return new_thing

def terminal(thing, k): 
  while 'X' in result: 

【问题讨论】:

这个问题有点太抽象了。确定一个值是否为in 一个对象取决于该对象是什么以及它如何确定它是否包含某些内容。如果您有一个关于您正在使用的实际对象的具体示例,那么提供一个真正的答案会更容易。例如,如果thing 是一个列表,你可以使用in'b' in ['a', 'b', 'c'] true,但如果是别的,谁知道呢? 'x' in result 可能是您所要求的,in 适用于所有可迭代的对象(注意:它不检查嵌套对象) 嗨,汤姆,谢谢。但是,尽管 termianl 的返回值,首先说“x”在结果中是否有效?或者我应该做类似“if result[1] == X:...”之类的事情吗? @Mark 你说得对,我应该提供更多上下文...thing 表示为 2d numpy 数组,thing3 返回该数组中空格的所有可能索引,thing2 设置为代码中所说的 new_thing[thing3]。 @Tom Karzes,我刚刚对 Mark 说的话是否改变了你最后提出的观点?我应该更具体。 【参考方案1】:

我认为while 'X' in result: 语句没有按您预期的方式工作,因为result 是函数而不是函数的输出,即result()。但是terminal 不能以明显的方式调用结果,除非你想要类似result(thing, k, k) 的东西,因为result 有三个必需的参数,而terminal 只有两个输入。

编辑: 如果您知道result 返回一个可迭代对象(如列表或元组),那么在没有result(arg1, arg2, arg3)[i] 形式的某种手动索引的情况下执行while 'X' in result(arg1, arg2, arg3): 总是有效的

【讨论】:

以上是关于Python 语法:如何检查返回值中是不是存在“x”?的主要内容,如果未能解决你的问题,请参考以下文章

Python:如何检查列表是不是包含数值并返回布尔值?

如何检查Python中是不是存在方法?

JQuery如何判断值中是不是包含某个值?

如何在 Python 中检查电子邮件是不是存在?

如何从 ColdFusion 查询循环中的返回值中检查空值

如何检查返回对象是不是是python中的字典[重复]