<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>

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

      How to test multiple variables for equality against a single value?(如何针对单个值测试多个变量的相等性?)
    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}

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

                本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

                相关文档推荐

                Split a Pandas column of lists into multiple columns(将 Pandas 的列表列拆分为多列)
                How does the @property decorator work in Python?(@property 装饰器在 Python 中是如何工作的?)
                What is the difference between old style and new style classes in Python?(Python中的旧样式类和新样式类有什么区别?)
                How to break out of multiple loops?(如何打破多个循环?)
                How to put the legend out of the plot(如何将传说从情节中剔除)
                Why is the output of my function printing out quot;Nonequot;?(为什么我的函数输出打印出“无?)

                <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>
                            <tbody id='MP79V'></tbody>