匹配案例中的条件语句

2023-12-02

Python 中是否可以使用条件语句作为匹配语句的情况?

工作是这样的:

test = 'Aston Martin'
makes = ['Aston Martin', 'Bentley']

match test:
    case if test in makes:
        print(True)
    case _:
        print(False)

我知道 match/case 并不是在寻找具有布尔值 True 的东西,但这似乎对于缩放事物很有用。

我尝试将其作为函数来执行,以便您可以返回完全匹配的结果:

test = 'Aston Martin'
makes = ['Aston Martin', 'Bentley']

def return_bool(item, lists):
    if item in lists:
        return item
    else:
        return 'notmatching'

match test:
    case return_bool(test, makes):
        print(True)
    case _:
        print(False)

这也行不通。我认为它期待一个格式输出,比如str(x).


正如评论指出的那样,您提供的代码似乎更适合if/elif, however它可以实现,因为match支持所谓的“保护条款”。

test = 'Aston Martin'
makes = ['Aston Martin', 'Bentley']

match test:
    case test if test in makes:
        print(True)
    case _:
        print(False)

即使在以下情况下这也有效makes不是一个固定的顺序。如果makes实际上只是固定序列的替代品,那么你也可以使用

test = 'Aston Martin'

match test:
    case 'Aston Martin' | 'Bentley':
        print(True)
    case _:
        print(False)

请注意,您cannot do this

test = 'Aston Martin'
makes = ['Aston Martin', 'Bentley']

match test:
    case makes:
        print(True)
    case _:
        print(False)

因为这总是匹配第一种情况,覆盖makes with test.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

匹配案例中的条件语句 的相关文章

  • 下载 PyQt6 的 Qt Designer 并使用 pyuic6 将 .ui 文件转换为 .py 文件

    如何下载 PyQt6 的 QtDesigner 如果没有适用于 PyQt6 的 QtDesigner 我也可以使用 PyQt5 的 QtDesigner 但是如何将此 ui 文件转换为使用 PyQt6 库而不是 PyQt5 的 py 文件
  • InterfaceError:连接已关闭(使用 django + celery + Scrapy)

    当我在 Celery 任务中使用 Scrapy 解析函数 有时可能需要 10 分钟 时 我得到了这个信息 我用 姜戈 1 6 5 django celery 3 1 16 芹菜 3 1 16 psycopg2 2 5 5 我也使用了psyc
  • 使用 openCV 对图像中的子图像进行通用检测

    免责声明 我是计算机视觉菜鸟 我看过很多关于如何在较大图像中查找特定子图像的堆栈溢出帖子 我的用例有点不同 因为我不希望它是具体的 而且我不确定如何做到这一点 如果可能的话 但我感觉应该如此 我有大量图像数据集 有时 其中一些图像是数据集的
  • 如何在 Sublime Text 2 的 OSX 终端中显示构建结果

    我刚刚从 TextMate 切换到 Sublime Text 2 我非常喜欢它 让我困扰的一件事是默认的构建结果显示在 ST2 的底部 我的程序产生一些很长的结果 显示它的理想方式 如在 TM2 中 是并排查看它们 如何在 Mac 操作系统
  • SQL Alchemy 中的 NULL 安全不等式比较?

    目前 我知道如何表达 NULL 安全的唯一方法 SQL Alchemy 中的比较 其中与 NULL 条目的比较计算结果为 True 而不是 NULL 是 or field None field value 有没有办法在 SQL Alchem
  • 打破嵌套循环[重复]

    这个问题在这里已经有答案了 有没有比抛出异常更简单的方法来打破嵌套循环 在Perl https en wikipedia org wiki Perl 您可以为每个循环指定标签 并且至少继续一个外循环 for x in range 10 fo
  • Spark的distinct()函数是否仅对每个分区中的不同元组进行洗牌

    据我了解 distinct 哈希分区 RDD 来识别唯一键 但它是否针对仅移动每个分区的不同元组进行了优化 想象一个具有以下分区的 RDD 1 2 2 1 4 2 2 1 3 3 5 4 5 5 5 在此 RDD 上的不同键上 所有重复键
  • 运行多个 scrapy 蜘蛛的正确方法

    我只是尝试使用在同一进程中运行多个蜘蛛新的 scrapy 文档 http doc scrapy org en 1 0 topics practices html但我得到 AttributeError CrawlerProcess objec
  • 使用 Pycharm 在 Windows 下启动应用程序时出现 UnicodeDecodeError

    问题是当我尝试启动应用程序 app py 时 我收到以下错误 UnicodeDecodeError utf 8 编解码器无法解码位置 5 中的字节 0xb3 起始字节无效 整个文件app py coding utf 8 from flask
  • Python 中的二进制缓冲区

    在Python中你可以使用StringIO https docs python org library struct html用于字符数据的类似文件的缓冲区 内存映射文件 https docs python org library mmap
  • Abaqus 将曲面转化为集合

    我一直试图在模型中找到两个表面的中心 参见照片 但未能成功 它们是元素表面 面 查询中没有选项可以查找元素表面的中心 只能查找元素集的中心 找到节点集的中心也很好 但是我的节点集没有出现在工具 gt 查询 gt 质量属性选项中 而且我找不到
  • 当玩家触摸屏幕一侧时,如何让 pygame 发出警告?

    我使用 pygame 创建了一个游戏 当玩家触摸屏幕一侧时 我想让 pygame 给出类似 你不能触摸屏幕两侧 的错误 我尝试在互联网上搜索 但没有找到任何好的结果 我想过在屏幕外添加一个方块 当玩家触摸该方块时 它会发出警告 但这花了很长
  • 表达式中的 Python 'in' 关键字与 for 循环中的比较 [重复]

    这个问题在这里已经有答案了 我明白什么是in运算符在此代码中执行的操作 some list 1 2 3 4 5 print 2 in some list 我也明白i将采用此代码中列表的每个值 for i in 1 2 3 4 5 print
  • Numpy 优化

    我有一个根据条件分配值的函数 我的数据集大小通常在 30 50k 范围内 我不确定这是否是使用 numpy 的正确方法 但是当数字超过 5k 时 它会变得非常慢 有没有更好的方法让它更快 import numpy as np N 5000
  • 如何改变Python中特定打印字母的颜色?

    我正在尝试做一个简短的测验 并且想将错误答案显示为红色 欢迎来到我的测验 您想开始吗 是的 祝你好运 法国的首都是哪里 法国 随机答案不正确的答案 我正在尝试将其显示为红色 我的代码是 print Welcome to my Quiz be
  • Python 3 中“map”类型的对象没有 len()

    我在使用 Python 3 时遇到问题 我得到了 Python 2 7 代码 目前我正在尝试更新它 我收到错误 类型错误 map 类型的对象没有 len 在这部分 str len seed candidates 在我像这样初始化它之前 se
  • 为美国东部以外地区的 Cloudwatch 警报发送短信?

    AWS 似乎没有为美国东部以外的 SNS 主题订阅者提供 SMS 作为协议 我想连接我的 CloudWatch 警报并在发生故障时接收短信 但无法将其发送到 SMS YES 经过一番挖掘后 我能够让它发挥作用 它比仅仅选择一个主题或输入闹钟
  • 检查所有值是否作为字典中的键存在

    我有一个值列表和一本字典 我想确保列表中的每个值都作为字典中的键存在 目前我正在使用两组来确定字典中是否存在任何值 unmapped set foo set bar keys 有没有更Pythonic的方法来测试这个 感觉有点像黑客 您的方
  • 在python中,如何仅搜索所选子字符串之前的一个单词

    给定文本文件中的长行列表 我只想返回紧邻其前面的子字符串 例如单词狗 描述狗的单词 例如 假设有这些行包含狗 hotdog big dog is dogged dog spy with my dog brown dogs 在这种情况下 期望
  • 如何使用google colab在jupyter笔记本中显示GIF?

    我正在使用 google colab 想嵌入一个 gif 有谁知道如何做到这一点 我正在使用下面的代码 它并没有在笔记本中为 gif 制作动画 我希望笔记本是交互式的 这样人们就可以看到代码的动画效果 而无需运行它 我发现很多方法在 Goo

随机推荐

  • 在 IntelliJ 中可以实现而在 Eclipse 中无法实现的事情?

    Locked 这个问题及其答案是locked因为这个问题是题外话 但却具有历史意义 目前不接受新的答案或互动 我听说有人改变了其中一种方式 并且对其中一种发誓 作为 Eclipse 的忠实粉丝 但还没有时间尝试 IntelliJ 我有兴趣从
  • printf,如何为整数插入小数点

    我有一个UINT16说的无符号整数 4455 312 560 or 70 如何使用 printf 在最后两位数字之前插入小数点 以便示例数字显示为 44 55 3 12 5 60 or 0 70 如果没有 printf 解决方案 是否有其他
  • 如何在下拉淘汰赛js中预先选择一个选项

    我已经查看了其他问题 但无法让我的选择框正常工作 绑定下拉 选择 列表的初始 默认值 我有以下游戏对象 function Game visitingTeamDetails homeTeamDetails game if arguments
  • 如何在android中绘制球体

    如何使用 OpenGL ES 在 Android 中绘制球体 您的问题可能与以下问题重复 在OPENGL ES中绘制球体时出现问题 在 OpenGL ES 中绘制球体 我建议您在提出问题之前先做一些研究 因为有很多教程可用于相同的内容 ht
  • 有没有办法禁用 Swing 应用程序的 Mac OS Retina 缩放?

    我们有一个相当复杂的应用程序 需要尽可能多的屏幕空间 自然 视网膜显示屏 Mac Book 非常适合此目的 然而 在 Swing 中这些设备似乎使用的是点而不是像素 它们允许我将图标更改为所讨论的更高分辨率版本here 但由于我们做了很多复
  • 如何在Python中的进程之间传递堆栈跟踪?

    我正在尝试创建一个 python 装饰器 它接受带有 args 和 kwargs 的函数 在新进程中执行它 关闭它并返回函数返回的任何内容 包括引发相同的异常 如果有 目前 如果函数没有引发异常 我的装饰器可以正常处理函数 但无法提供回溯
  • 一段时间后关闭 tkinter 窗口

    我有一段Python代码 应该打开一个新窗口一段时间 然后关闭该窗口 该窗口是通过单击按钮触发的 这是我所拥有的基础知识 def restore self self restore Toplevel message Select an av
  • 如何通过命令行删除 PostgreSQL 数据库[关闭]

    Closed 这个问题是无关 目前不接受答案 我正在尝试删除数据库并通过命令行创建一个新数据库 我使用登录psql U username然后做一个 connect template1 后面跟着一个DROP DATABASE database
  • 如何使用 PowerShell 修改 SharePoint 列表中的项目值

    如何使用 PowerShell 修改 SharePoint 列表中的项目值 当我尝试以下操作时 splist GetItems ForEach Object Write Host Item if Item eq null SPFileCol
  • 为什么动态添加的图像的offsetWidth总是0

    我正在通过 Javascript 添加图像 图像可以是任何尺寸 我想获取尺寸 宽度和高度 问题是 offsetWidth and style width始终为 0 这是一些要复制的代码 const container document ge
  • 当我重写 CreateParams 时,RichTextBox 不显示所有数据

    I foundNoBugz 编写的一些旧代码 汉斯 帕桑特 如果我理解的话 会强制 Richtextbox 使用 RTF 5 0 而不是 4 0 基本上它只是一个继承的类RichTextBox并覆盖CreateParams财产本身 priv
  • 用于多字节字符编码的 ucfirst() 函数

    我问过strtolower功能 但是当使用外来字符时 它不会将它们转换为大写 所以我必须使用 mb strtolower a utf8 但是如果我想使用我能做什么ucfirst 功能 我还没有找到任何类似的功能 可以在其中设置编码类型 没有
  • CSS 背景。将内容盒与盖子组合在一起

    如果我同时使用background origin content box 和背景大小 封面 在带有一些填充的元素上 背景图像仍然覆盖底部填充 在最新版本的 Safari Chrome Firefox 和 IE 中 div backgroun
  • 运行 LLVM 示例时遇到问题

    我在这个问题上挣扎的时间比我愿意承认的要长 并且非常感谢一些帮助 我正在尝试做一个涉及构建链接器和调度程序的项目 并且认为如果我可以使用 LLVM 中已经构建的一些功能 那就太好了 我正在使用 LLVM 10 为了开始使用 我做了一些阅读并
  • GL_DEPTH_TEST 和透明纹理的渲染故障

    从一个角度看 我的灌木看起来像这样 从另一个角度看 它们是这样的 我的理论是 当从第一个角度看灌木时 灌木后面的所有块都已经画好了 所以当绘制灌木时 它只是将它们绘制在上面 然而 从另一个角度来看 它基本上是先尝试绘制灌木 然后当 它去绘制
  • 对于无法使用 astype 进行转换的值使用 NaN

    我有一个非常大的 Pandas DataFrame 如下所示 gt gt gt d pd DataFrame a 1 U 3 4 gt gt gt d a 0 1 1 U 2 3 4 目前该列设置为object gt gt gt d dty
  • XQuery 和节点 ID

    我有这个变量 declare xmlDoc XML 它存储了以下 xml
  • `class HelloWorld : public Gtk::Window` 是什么意思?

    我正在按照 Gtk Hello World 教程找到here 我在类声明中遇到了一行我以前从未见过的行 我现在才学习编程几个月 我想知道是否有人可以向我解释一下 该线是 class HelloWorld public Gtk Window
  • 批处理文件根据名称将文件夹放入其他文件夹中

    有人提出了与此非常相似的问题 自动将文件放入文件夹中 但是我正在努力转换上述问题的答案以满足我的需要 我的问题是 我需要使用文件夹名称的一部分将文件夹移动到其他文件夹中 之前回答的问题是关于移动文件的 我的文件夹上有日期和时间戳2016 0
  • 匹配案例中的条件语句

    Python 中是否可以使用条件语句作为匹配语句的情况 工作是这样的 test Aston Martin makes Aston Martin Bentley match test case if test in makes print T