如何理解Python中的表达式列表
当我今天阅读Python文档时,我发现如何理解Python中的表达式列表,python,list,Python,List,当我今天阅读Python文档时,我发现表达式列表,网站上的描述如下: 表达式\u列表::=表达式(“,”表达式)*[“,”] 包含至少一个逗号的表达式列表将生成一个元组。元组的长度是列表中表达式的数量。表达式从左到右求值 只有创建一个元组(也称为单元组)才需要后面的逗号;它在所有其他情况下都是可选的。没有尾随逗号的单个表达式不会创建元组,而是生成该表达式的值。(要创建空元组,请使用一对空括号:()) 因为网站上没有给出示例,所以我想知道是否有人可以对此进行简要描述,并给出一个使用示例。非常感谢。
表达式列表
,网站上的描述如下:
表达式\u列表::=表达式(“,”表达式)*[“,”]
包含至少一个逗号的表达式列表将生成一个元组。元组的长度是列表中表达式的数量。表达式从左到右求值
只有创建一个元组(也称为单元组)才需要后面的逗号;它在所有其他情况下都是可选的。没有尾随逗号的单个表达式不会创建元组,而是生成该表达式的值。(要创建空元组,请使用一对空括号:())
因为网站上没有给出示例,所以我想知道是否有人可以对此进行简要描述,并给出一个使用示例。非常感谢。这篇文章讲述了如何编写元组 比如说,
>>> 1, 2
(1, 2)
是一个两元素元组,如下所示
>>> 7*8, 5-6
(56, -1)
为了清晰起见,元组通常用括号括起来,但它们是不必要的;除了0元素元组的情况,()
一个元素元组是另一个例外,因为其中必须有逗号:
>>> 1,
(1, )
如果没有逗号,就无法将其与正常数字1
区分开来。您也可以在多元素元组之后添加一个额外的逗号,但在这种情况下它不会起任何作用:
>>> 1, 2,
(1, 2)
以下是一些帮助您了解情况的示例: 包含至少一个逗号的表达式列表将生成一个元组 这意味着,如果您有
1,2
,这将创建一个元组。长度是指您拥有的物品数量
仅在创建单个元组(又称元组)时才需要尾随逗号
单身人士);它在所有其他情况下都是可选的
这意味着,如果要创建包含一个项的元组,则需要在末尾添加逗号,如1,
,否则:
没有尾随逗号的单个表达式不会创建元组,
而是产生该表达式的值
因此,1
不是在创建元组,而是在计算表达式。这听起来很明显,但如果您编写(1)
,然后期望它作为一个元组进行计算(在(1)
的情况下,它将被计算为整数值1
)
最后
(要创建空元组,请使用一对空括号:())
如果出于某种原因希望创建空元组作为表达式,请使用以下特殊语法()
通常的做法是将表达式(尤其是元组)用()包围,但这不是必需的,尽管有时这有助于提高可读性<代码>1,2和(1,2)
相等:
>>> a = 1,2
>>> type(a)
<type 'tuple'>
>>> b = (1,2)
>>> type(b)
<type 'tuple'>
>>> a == b
True
>a=1,2
>>>类型(a)
>>>b=(1,2)
>>>类型(b)
>>>a==b
真的
谢谢,伙计,我知道,但是为什么文档会在上面写表达式列表::=expression(“,”expression)*[“,”]
?。我就是不明白这是什么意思。它是正则表达式吗?哦,不,那只是表达式本身的语法。它描述了如何解析表达式列表(即,对于令牌解析器来说它是什么样子)。请注意,表达式列表不包括parethese,因此您在开始时的示例有点误导。如果要成为表达式列表,它们应该是1、2
、1、
和1。@AlexanderYau这是一种常规语法。你找错地方了,伙计,这个页面是为那些想制作一个新的python解释器而不是编写代码的人准备的。在python文档的搜索栏中搜索“tuple”或“list”。语言引用不是用来作为语言的“tutorial”样式描述,而是用来指定语言。例如,你可能应该阅读教程,而对大多数人来说,它是一本应该首先阅读的教程。阅读本教程后,语言参考会变得更加清晰。这指定了语言,但不会教你如何制作列表。这是python文档,而不是“python文档”。这是“非常感谢”,不是“非常感谢”。