如何测试多个变量与单个值的相等性?

2023-11-27

我正在尝试创建一个函数,将多个变量与一个整数进行比较并输出一个由三个字母组成的字符串。我想知道是否有办法将其翻译成Python。所以说:

x = 0
y = 1
z = 3
mylist = []

if x or y or z == 0:
    mylist.append("c")
if x or y or z == 1:
    mylist.append("d")
if x or y or z == 2:
    mylist.append("e")
if x or y or z == 3: 
    mylist.append("f")

这将返回一个列表:

["c", "d", "f"]

您误解了布尔表达式的工作原理;它们不像英语句子那样工作,并且猜测您在这里谈论的是对所有名称的相同比较。您正在寻找:

if x == 1 or y == 1 or z == 1:

x and y否则将自行评估(False if 0, True否则)。

您可以使用遏制测试来缩短时间a tuple:

if 1 in (x, y, z):

或者更好的是:

if 1 in {x, y, z}:

using a set利用恒定成本会员资格测试(即in无论左侧操作数是什么,都需要固定的时间)。

解释

当你使用or,python 将运算符的每一侧视为separate表达式。表达方式x or y == 1被视为第一个布尔测试x,那么如果这是 False,则表达式y == 1经测试。

这是因为运算符优先级. The or运算符的优先级低于==测试,因此评估后者first.

然而,即使这是not案例和表达式x or y or z == 1实际上被解释为(x or y or z) == 1相反,这仍然不会达到您期望的效果。

x or y or z将评估第一个“真实”的参数,例如不是False、数字 0 或空(请参阅布尔表达式有关 Python 在布尔上下文中认为 false 的详细信息)。

所以对于价值观x = 2; y = 1; z = 0, x or y or z将决心2,因为这是参数中第一个类似 true 的值。然后2 == 1将会False, 虽然y == 1将会True.

这同样适用于相反的情况;针对单个变量测试多个值;x == 1 or 2 or 3也会因为同样的原因而失败。使用x == 1 or x == 2 or x == 3 or x in {1, 2, 3}.

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

如何测试多个变量与单个值的相等性? 的相关文章

  • 将字符串转换为带有毫秒和时区的日期时间 - Python

    我有以下 python 片段 from datetime import datetime timestamp 05 Jan 2015 17 47 59 000 0800 datetime object datetime strptime t
  • Pycharm Python 控制台不打印输出

    我有一个从 Pycharm python 控制台调用的函数 但没有显示输出 In 2 def problem1 6 for i in range 1 101 2 print i end In 3 problem1 6 In 4 另一方面 像
  • 更改自动插入 tkinter 小部件的文本颜色

    我有一个文本框小部件 其中插入了三条消息 一条是开始消息 一条是结束消息 一条是在 单位 被摧毁时发出警报的消息 我希望开始和结束消息是黑色的 但被毁坏的消息 参见我在代码中评论的位置 插入小部件时颜色为红色 我不太确定如何去做这件事 我看
  • Python 多处理示例不起作用

    我正在尝试学习如何使用multiprocessing但我无法让它发挥作用 这是代码文档 http docs python org 2 library multiprocessing html from multiprocessing imp
  • 基于现有类的 Sass 'if' 语句

    我是 Sass 新手 想使用 if 语句来检测元素上的现有类 以便生成相关的 css 我的设置有大量 Javascript 生成的图像 这些图像被分配了唯一的 ID 以及 图片 类和随机分配的上 右 下或左类 我还使用 Sass 的随机函数
  • 如何在Windows上模拟socket.socketpair

    标准Python函数套接字 套接字对 https docs python org 3 library socket html socket socketpair不幸的是 它在 Windows 上不可用 从 Python 3 4 1 开始 我
  • 如何等到 Excel 计算公式后再继续 win32com

    我有一个 win32com Python 脚本 它将多个 Excel 文件合并到电子表格中并将其另存为 PDF 现在的工作原理是输出几乎都是 NAME 因为文件是在计算 Excel 文件内容之前输出的 这可能需要一分钟 如何强制工作簿计算值
  • 如何使用 Scrapy 从网站获取所有纯文本?

    我希望在 HTML 呈现后 可以从网站上看到所有文本 我正在使用 Scrapy 框架使用 Python 工作 和xpath body text 我能够获取它 但是带有 HTML 标签 而且我只想要文本 有什么解决办法吗 最简单的选择是ext
  • 如何在不超过最大值的情况下增加变量?

    我正在为学校开发一个简单的视频游戏程序 我创建了一个方法 如果调用该方法 玩家将获得 15 点生命值 我必须将生命值保持在最大值 100 并且由于我目前的编程能力有限 我正在做这样的事情 public void getHealed if h
  • 安装后 Anaconda 提示损坏

    我刚刚安装张量流GPU创建单独的后环境按照以下指示here https github com antoniosehk keras tensorflow windows installation 但是 安装后当我关闭提示窗口并打开新航站楼弹出
  • 从列表中的数据框列中搜索部分字符串匹配 - Pandas - Python

    我有一个清单 things A1 B2 C3 我有一个 pandas 数据框 其中有一列包含用分号分隔的值 某些行将包含与上面列表中的一项的匹配 它不会是完美的匹配 因为它在其中包含字符串的其他部分 该列 例如 该列中的一行可能有 哇 这里
  • Python:字符串不会转换为浮点数[重复]

    这个问题在这里已经有答案了 我几个小时前写了这个程序 while True print What would you like me to double line raw input gt if line done break else f
  • 当玩家触摸屏幕一侧时,如何让 pygame 发出警告?

    我使用 pygame 创建了一个游戏 当玩家触摸屏幕一侧时 我想让 pygame 给出类似 你不能触摸屏幕两侧 的错误 我尝试在互联网上搜索 但没有找到任何好的结果 我想过在屏幕外添加一个方块 当玩家触摸该方块时 它会发出警告 但这花了很长
  • Nuitka 未使用 nuitka --recurse-all hello.py [错误] 编译 exe

    我正在尝试通过 nuitka 创建一个简单的 exe 这样我就可以在我的笔记本电脑上运行它 而无需安装 Python 我在 Windows 10 上并使用 Anaconda Python 3 我输入 nuitka recurse all h
  • 如何将 PIL 图像转换为 NumPy 数组?

    如何转换 PILImage来回转换为 NumPy 数组 这样我就可以比 PIL 进行更快的像素级转换PixelAccess允许 我可以通过以下方式将其转换为 NumPy 数组 pic Image open foo jpg pix numpy
  • Python:计算字典的重复值

    我有一本字典如下 dictA unit1 test1 alpha unit1 test2 beta unit2 test1 alpha unit2 test2 gamma unit3 test1 delta unit3 test2 gamm
  • 设置 torch.gather(...) 调用的结果

    我有一个形状为 n x m 的 2D pytorch 张量 我想使用索引列表来索引第二个维度 可以使用 torch gather 完成 然后然后还设置新值到索引的结果 Example data torch tensor 0 1 2 3 4
  • 如何从没有结尾的管道中读取 python 中的 stdin

    当管道来自 打开 时 不知道正确的名称 我无法从 python 中的标准输入或管道读取数据 文件 我有作为例子管道测试 py import sys import time k 0 try for line in sys stdin k k
  • 使用基于正则表达式的部分匹配来选择 Pandas 数据帧的子数据帧

    我有一个 Pandas 数据框 它有两列 一列 进程参数 列 包含字符串 另一列 值 列 包含相应的浮点值 我需要过滤出部分匹配列 过程参数 中的一组键的子数据帧 并提取与这些键匹配的数据帧的两列 df pd DataFrame Proce
  • Pandas 与 Numpy 数据帧

    看这几行代码 df2 df copy df2 1 df 1 df 1 values 1 df2 ix 0 0 我们的教练说我们需要使用 values属性来访问底层的 numpy 数组 否则我们的代码将无法工作 我知道 pandas Data

随机推荐

  • 返回上一屏幕而不创建新实例

    正如图中所解释的 流程是这样的 因此 每当用户单击徽标按钮时 都应该调用 Activity A 作为简单的解决方案 我们可以使用这种方法 Intent intent new Intent activity activityToStart s
  • 如何并行化一个简单的 Python 循环?

    这可能是一个微不足道的问题 但是如何在 python 中并行化以下循环 setup output lists output1 list output2 list output3 list for j in range 0 10 calc i
  • 类型...不可分配给类型“从不”。(2322)

    下面的代码片段报错Type string is not assignable to type never 2322 在行中obj prop value我很难理解为什么 interface fooType s string n number
  • 为什么 vector::push_back 和 emplace_back 调用 value_type::constructor 两次?

    我有这门课 class Foo public Foo Foo const Foo cout lt lt constructed by lvalue reference lt
  • 如何使用 httr 发布多部分/相关内容(适用于 Google Drive API)

    我使用 httr 将简单的文件上传到 Google Drive 问题是每个文档都作为 无标题 上传 我必须修补元数据才能设置标题 PATCH 请求有时会失败 根据API 我应该能够进行分段上传 允许我将标题指定为上传文件的同一 POST 请
  • 递归方法最长路径算法的计算复杂度

    我编写了一个代码段来确定图中的最长路径 以下是代码 但由于中间的递归方法 我不知道如何获得其中的计算复杂度 由于找到最长的路径是一个 NP 完全问题 我认为它是这样的O n or O 2 n 但我怎样才能真正确定它呢 public stat
  • 部分类模板特化是这个设计问题的答案吗?

    假设您有一个类 其工作是连接到远程服务器 我想抽象这个类以提供两个版本 一个通过UDP连接 另一个通过TCP连接 我想构建尽可能精简的运行时代码 而不是使用多态性 我正在考虑模板 这是我的设想 但我不确定这是最好的方法 class udp
  • 当组不互斥时,功能类似于 group_by

    我想在 R 中创建一个函数 类似于dplyr s group by函数 当与summarise可以给出数据集的汇总统计数据 其中组成员身份并不相互排斥 即 观察结果可以属于多个组 考虑这个问题的一种方法可能是考虑标签 观察结果可能属于一个或
  • 在 Git 中维护“服务器版本”(仅更改配置文件)的正确方法是什么?

    我有时使用 Codeigniter 在本地站点上完成开发后 我需要将文件迁移到服务器 中的所有文件 config 需要更改文件夹以匹配服务器设置 对这些更改进行完整提交是不对的 我是否只是让 Git 完全忽略这些文件 或者有没有办法跟踪这些
  • C# 可为空字符串错误

    private string typeOfContract get return string ViewState typeOfContract set ViewState typeOfContract value 稍后在代码中我这样使用它
  • Spring REST - RestTemplate 可以使用多部分/混合吗?

    我想编写一个 REST 服务 它响应一个 zip 文件和一些 json 数据 所有内容都在一个多部分 混合请求中 服务器部分工作正常 我正在使用 Firefox 的 REST 客户端对其进行测试 我的服务器发送这样的多部分 k dXaXvC
  • 实体框架不适用于没有标识列的表

    我有下表 create table tbl id int identity 1 1 val varchar 100 现在 当我使用实体框架将对象映射到该表时 它可以工作 但是当我按如下方式更改表定义时 create table tbl1 i
  • 在 SendGrid C# 中将电子邮件作为日历邀请/约会发送

    我想向 Outlook 以及非 Outlook 客户端 例如 gmail yahoo 发送一封包含日历邀请 约会的电子邮件 我的应用程序托管在 Azure 上 我使用 SendGrid 发送电子邮件 电子邮件部分工作得很好 但我还没有找到任
  • 开发 URL 缩短器

    我正在尝试开发一个 URL 缩短器应用程序来练习 Django 我不明白如何为每个长 URL 创建唯一的字符串以用作短 URL 就像其他流行的 URL 缩短器一样 我怎样才能做到这一点 是否可以使所有短网址的长度相同 我不明白如何为每个长
  • 在 Perl 中获取 UTC 偏移量的最佳方法是什么? [复制]

    这个问题在这里已经有答案了 我需要以跨平台 Windows 和各种风格的 Unix 方式在 Perl 中获取当前时区的 UTC 偏移量 它应该满足以下格式 zzzzzz 表示相对于 UTC 的 hh mm 看来我应该能够通过strftime
  • 如何为 log4j 设置单独的日志记录流?

    假设我有一堂这样的课 public class MyClass private Logger log LoggerFactory getLogger MyClass class org slf4j LoggerFactory public
  • 在 Chrome 中上传返回 Aw, Snap 页面

    从 chrome 的上次更新 版本 36 0 1985 125 m 开始 我遇到了 uplodify 插件 flash 的问题 Chrome 会显示 噢 Snap Page 有时还会显示 他死了 吉姆 这是我的上传代码
  • Android 文件管理器库 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 诚然 我在 Android 开发方面没有经验 我正在寻找一些 API 可以让我浏览用户文件 而无需通过意图安装单独的应用程序 现在我已经找到了OI
  • java程序中的代理设置

    我正在尝试通过 Eclipse 中的 java 程序使用从 wsdl 生成的客户端连接到 Web 服务 我正在通过代理服务器传递我的请求 但似乎请求没有通过 相同的代理设置在 SoapUI 上运行良好 请在下面找到我设置的系统属性 Prop
  • 如何测试多个变量与单个值的相等性?

    我正在尝试创建一个函数 将多个变量与一个整数进行比较并输出一个由三个字母组成的字符串 我想知道是否有办法将其翻译成Python 所以说 x 0 y 1 z 3 mylist if x or y or z 0 mylist append c