案例详解:理解Python中的“解析式”
如果表达式包含元组(例如(x,y)),则必须用括号括起来。
嵌套列表解析式 列表解析式也可以嵌套以创建复杂的列表。例如,可以仅使用列表解析式来构建矩阵。 构建一个3x3的矩阵:
集合解析式 集合解析式类似于列表解析式,但返回的是集合而不是列表。意义上来说语法略有不同,创建集合解析式用花括号而不是方括号。 思考包含以下人名的列表:
该列表包含许多重复项,并且有的名字只有一个字母。目前想要的是一个由长于一个字母且仅首字母大写的名字组成的列表。为了完成这项任务,采用了集合解析式。
字典解析式 { } 当输入采用字典或键:值对的形式时,使用字典解析式。例如,思考这样一个字典,其中键表示字符,值表示这些字符出现在语料库中的次数。
字典char_dict由大写和小写字母组成。在此想要计算字母的总出现次数,不管它们是大写还是小写。本文使用字典解析式来实现这个目标:
生成器解析式 ( ) 列表解析是列表,因为生成器表达式是生成器。生成器函数从给定序列一次一个地输出值,而不是一次性全部输出。这是一篇很好的文章,它解释了Python中Generators的细节。 生成器解析式的语法和工作方式就像列表解析式一样,只不过它们使用圆括号而不是方括号。假设想要计算前十个自然数的平方和。
如果我们使用任何其他可迭代而不一定是列表,结果将是相同的。
现在,如果使用生成器解析式来计算前十个自然数的平方,那么它将是这样的:
与列表解析式不同,生成器解析式不返回列表而是返回生成器对象。为了得到结果,可以使用上面的表达式和sum函数。
看看如何摆脱上面表达式中的冗余括号,使代码更有效。 最后,不要过度使用解析式 列表解析式是减少代码长度的有效方法。它们还使代码更具可读性。但有些情况下不用它也能轻松地达成目的。 当程序的逻辑太长时,不建议使用解析式。使用解析式的主要目的是缩短代码。但是,当开始将过多的代码打包到单个语句中时,倾向于牺牲代码的可读性。在这种情况下,for循环是更优选择。
(编辑:晋中站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |