【问题标题】:if statement to check list items [duplicate]if语句检查列表项[重复]
【发布时间】:2018-09-09 10:49:00
【问题描述】:

我有以下列表和变量:

x = [1,2,17,4,5,7,11]
v = 18

并且我希望(在单个 if 语句中)在列表中搜索以检查它是否包含一个项目,如果我们从 v 变量中减去“或任何其他操作”,它将等于一个“作为示例”。

对于上面的示例,if 语句将产生 True,因为我们有项目 18 (18-17=1)。

我们可以在单个 if 语句(不使用单独的循环)中使用 python 做到这一点吗?

【问题讨论】:

  • 不,我不是在寻找值的存在..
  • 是的,你是。您正在寻找v+1
  • if v+1 in x: print x.index(v+1) - 这可能会有所帮助。
  • “我有 X 并且我想要 Y”是一项工作任务,而不是一个问题。工作分配是你给员工的东西。
  • @MIBMinion 首先你说'从 v 中减去它' 然后你使用18 - 17 作为例子。应该从哪个中减去哪个?

标签: python if-statement


【解决方案1】:

您可以通过使用if 语句的列表推导获得答案列表:

x = [1,2,18,4,5,7,11]
v = 17
answers = [i for i in x if i-v==1]
print(answers) # [18]

【讨论】:

    【解决方案2】:

    您的问题的正确答案已经在 cmets 中,但假设您尝试使示例更小以隐藏更复杂的问题(您替换减法的操作不可逆的问题),您可以在带有any 函数和列表理解的 Python:

    x = [1,2,18,4,5,7,11]
    v = 17
    if any([a - v == 1 for a in x]):
        print("Found it!")
    

    【讨论】:

    • 我给出了不同的答案,但这一个很棒。任何/所有内置插件都被低估了。
    • 谢谢,这就是我想要的..
    猜你喜欢
    • 2023-03-22
    • 1970-01-01
    • 2021-06-08
    • 2019-10-22
    • 2013-10-21
    • 2019-06-30
    • 2020-05-07
    • 2015-12-06
    • 2018-04-19
    相关资源
    最近更新 更多