<tfoot id='eWJdk'></tfoot>
  1. <i id='eWJdk'><tr id='eWJdk'><dt id='eWJdk'><q id='eWJdk'><span id='eWJdk'><b id='eWJdk'><form id='eWJdk'><ins id='eWJdk'></ins><ul id='eWJdk'></ul><sub id='eWJdk'></sub></form><legend id='eWJdk'></legend><bdo id='eWJdk'><pre id='eWJdk'><center id='eWJdk'></center></pre></bdo></b><th id='eWJdk'></th></span></q></dt></tr></i><div id='eWJdk'><tfoot id='eWJdk'></tfoot><dl id='eWJdk'><fieldset id='eWJdk'></fieldset></dl></div>
    1. <small id='eWJdk'></small><noframes id='eWJdk'>

    2. <legend id='eWJdk'><style id='eWJdk'><dir id='eWJdk'><q id='eWJdk'></q></dir></style></legend>

        <bdo id='eWJdk'></bdo><ul id='eWJdk'></ul>

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

      时间:2024-04-20
    3. <tfoot id='4DbUb'></tfoot>
        <bdo id='4DbUb'></bdo><ul id='4DbUb'></ul>
        <legend id='4DbUb'><style id='4DbUb'><dir id='4DbUb'><q id='4DbUb'></q></dir></style></legend>
      • <small id='4DbUb'></small><noframes id='4DbUb'>

                <tbody id='4DbUb'></tbody>

                <i id='4DbUb'><tr id='4DbUb'><dt id='4DbUb'><q id='4DbUb'><span id='4DbUb'><b id='4DbUb'><form id='4DbUb'><ins id='4DbUb'></ins><ul id='4DbUb'></ul><sub id='4DbUb'></sub></form><legend id='4DbUb'></legend><bdo id='4DbUb'><pre id='4DbUb'><center id='4DbUb'></center></pre></bdo></b><th id='4DbUb'></th></span></q></dt></tr></i><div id='4DbUb'><tfoot id='4DbUb'></tfoot><dl id='4DbUb'><fieldset id='4DbUb'></fieldset></dl></div>
              1. 本文介绍了如何针对单个值测试多个变量的相等性?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                问题描述

                我正在尝试创建一个函数,该函数将多个变量与一个整数进行比较,并输出一个由三个字母组成的字符串。我想知道有没有办法把它翻译成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:
                

                xy以其他方式单独评估(False如果0True否则)。

                您可以使用包含测试来缩短a tuple:

                if 1 in (x, y, z):
                

                或更好:

                if 1 in {x, y, z}:
                

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

                说明

                当您使用or时,Python将运算符的每一侧视为单独的表达式。表达式x or y == 1首先被视为x的布尔测试,如果为假,则测试表达式y == 1

                这是由于operator precedence。or运算符的优先级低于==测试,因此将首先评估测试。

                但是,即使不是这种情况,表达式x or y or z == 1实际上被解释为(x or y or z) == 1,这仍然不会达到您预期的效果。

                x or y or z将计算为第一个‘true’参数,例如,不是False、数字0或空(有关在布尔上下文中Python认为是False的详细信息,请参阅boolean expressions)。

                因此,对于值x = 2; y = 1; z = 0x 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 == 3x in {1, 2, 3}

                这篇关于如何针对单个值测试多个变量的相等性?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                上一篇:为什么 pandas 的DataFrame可以相互改变? 下一篇:如何将日期和时间从自然语言转换为日期时间?

                相关文章

                <small id='MP79V'></small><noframes id='MP79V'>

                1. <i id='MP79V'><tr id='MP79V'><dt id='MP79V'><q id='MP79V'><span id='MP79V'><b id='MP79V'><form id='MP79V'><ins id='MP79V'></ins><ul id='MP79V'></ul><sub id='MP79V'></sub></form><legend id='MP79V'></legend><bdo id='MP79V'><pre id='MP79V'><center id='MP79V'></center></pre></bdo></b><th id='MP79V'></th></span></q></dt></tr></i><div id='MP79V'><tfoot id='MP79V'></tfoot><dl id='MP79V'><fieldset id='MP79V'></fieldset></dl></div>

                  1. <legend id='MP79V'><style id='MP79V'><dir id='MP79V'><q id='MP79V'></q></dir></style></legend>
                    <tfoot id='MP79V'></tfoot>
                      <bdo id='MP79V'></bdo><ul id='MP79V'></ul>