What#39;s the meaning of quot;(1,) == 1,quot; in Python?(“(1,) == 1,是什么意思?在 Python 中?)
问题描述
我正在测试元组结构,发现使用 ==
运算符时很奇怪:
I'm testing the tuple structure, and I found it's strange when I use the ==
operator like:
>>> (1,) == 1,
Out: (False,)
当我将这两个表达式赋值给一个变量时,结果为真:
When I assign these two expressions to a variable, the result is true:
>>> a = (1,)
>>> b = 1,
>>> a==b
Out: True
这个问题不同于我的 Python tuple trailing comma syntax rule看法.我问 ==
运算符之间的表达式组.
This questions is different from Python tuple trailing comma syntax rule in my view. I ask the group of expressions between ==
operator.
推荐答案
其他答案已经向您表明该行为是由于运算符优先级引起的,如文档 这里.
Other answers have already shown you that the behaviour is due to operator precedence, as documented here.
下次您遇到类似的问题时,我将向您展示如何自己找到答案.您可以使用 ast
解构表达式的解析方式模块:
I'm going to show you how to find the answer yourself next time you have a question similar to this. You can deconstruct how the expression parses using the ast
module:
>>> import ast
>>> source_code = '(1,) == 1,'
>>> print(ast.dump(ast.parse(source_code), annotate_fields=False))
Module([Expr(Tuple([Compare(Tuple([Num(1)], Load()), [Eq()], [Num(1)])], Load()))])
从这里我们可以看到代码被解析正如蒂姆·彼得斯解释的那样:
From this we can see that the code gets parsed as Tim Peters explained:
Module([Expr(
Tuple([
Compare(
Tuple([Num(1)], Load()),
[Eq()],
[Num(1)]
)
], Load())
)])
这篇关于“(1,) == 1,"是什么意思?在 Python 中?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:“(1,) == 1,"是什么意思?在 Python 中?
基础教程推荐
- 筛选NumPy数组 2022-01-01
- Dask.array.套用_沿_轴:由于额外的元素([1]),使用dask.array的每一行作为另一个函数的输入失败 2022-01-01
- 使用PyInstaller后在Windows中打开可执行文件时出错 2022-01-01
- 线程时出现 msgbox 错误,GUI 块 2022-01-01
- 如何让 python 脚本监听来自另一个脚本的输入 2022-01-01
- Python kivy 入口点 inflateRest2 无法定位 libpng16-16.dll 2022-01-01
- 用于分类数据的跳跃记号标签 2022-01-01
- 如何在海运重新绘制中自定义标题和y标签 2022-01-01
- 在 Python 中,如果我在一个“with"中返回.块,文件还会关闭吗? 2022-01-01
- 何时使用 os.name、sys.platform 或 platform.system? 2022-01-01