当前位置: 首页 > 知识库问答 >
问题:

和/或用Python?[副本]

方航
2023-03-14

我知道python中存在以及表达式,但是有和/或表达式吗?或者以某种方式将它们组合起来,以产生与和/或表达式相同的效果?

if input=="a":        
    if "a" or "á" or "à" or "ã" or "â" in someList:            
        someList.remove("a") or someList.remove("á") or someList.remove("à") or someList.remove("ã") or someList.remove("â")

python告诉我:

someList.remove("a") or someList.remove("á") or someList.remove("à") or someList.remove("ã") or someList.remove("â")

他告诉我:valueerror:list.remove(x):x不在列表中

共有1个答案

赏开宇
2023-03-14

正如Matt Ball的回答所解释的,是“和/或”。但是不能与中使用。如果someList中的“a”或someList中的“á"或...必须说。或者更好,

if any(c in someList for c in ("a", "á", "à", "ã", "â")):
    ...

这就是你所问问题的答案。

但是,关于您发布的示例代码,还有一些事情要说。首先,somelist.remove······或someList remove...语句在这里是不必要的,并且可能导致意外行为。也很难读懂!最好把它分成几行:

someList.remove("a")
someList.remove("á")
...
chars_to_remove = set(("a", "á", "à", "ã", "â"))
someList = [c for c in someList if c not in chars_to_remove]
someList[:] = (c for c in someList if c not in chars_to_remove)

这是该代码最高效的版本。它有两个速度优势:

  1. 它只通过somelist一次。在上面的场景中,它只执行100个测试,而不是执行1000个测试。
  2. 它可以通过一个操作测试所有字符,因为chars_to_remove是一个。如果chars_to_remove列表元组,那么在上面的场景中,每个测试实际上是10个测试--因为需要单独检查列表中的每个字符。

 类似资料:
  • 问题内容: Python-使用args和*kwargs[副本] 问题答案: 1650 语法为和。名称和仅是约定,但没有使用它们的硬性要求。 你会使用,当你确定不是多少个参数可能会被传递给你的函数,也就是说,它允许你传递的参数任意数量给你的函数。例如: 同样,允许你处理尚未预先定义的命名参数: 你也可以将它们与命名参数一起使用。显式参数首先获取值,然后将其他所有值传递给argsand *kwargs

  • 我读了很多与我所问的问题相关的答案,但我仍然不明白如何使我正在尝试的事情成为可能。所以让我们直奔主题。我将报告我的应用程序的简化版本。 null 现在,集群和解析器包中包含的python脚本应该使用support_class中包含的myclass.py。 我尝试了相对导入,但它们不起作用,因为我希望直接运行集群和解析器包中包含的脚本,并且我不想使用-m选项。 python parser.py[参数

  • 嗨,伙计们,我需要帮助。 所以我有了python的最新版本,并且我能够推动pip安装Selenium。当我运行一个脚本时,它会显示这样的消息 我有Windows10。我已经下载了geckodriver-v0.18.0-win64zip。我提取了它,复制并粘贴到用户变量和系统变量路径中,但它仍然不起作用。有谁能帮忙吗??我正在使用记事本++和命令提示符运行我的代码 我正在尝试运行的代码

  • 来自:https://github.com/apache/beam/blob/master/sdks/python/apache_beam/examples/wordcount.py#l92 Python中和的语法和用法是什么?

  • 当我使用相对导入时,我的代码运行正常,但pycharm抱怨。总之。py,导入行用红色下划线,我没有完成。 如果我尝试通过在任何地方添加“app.”来切换到使用绝对导入,pycharm 很高兴,但代码不再运行。我得到:“ModuleNotFoundError:没有名为'app'的模块” 这是我的项目的树形结构。这是我的test_import文件夹的内容: main.py mul.py: sum.py

  • 为什么它会打印?你能详细介绍一下所有的功能吗?