摘要:
场景:需要执行缩减函数(例如,sum(),min(),max()),但首先需要转换或过滤数据。 通常可以使用生成器表达式进行数据的过滤,sum,min,max的参数为iterable,而generator继承iterator,iterator继承iterable。故生成器表达式同样可以作为这些函数的 阅读全文
摘要:
通常列表或元组通过位置(索引)来访问元素,但这使得代码有时难以阅读。 通常我们希望通过按名称访问元素来减少对位置的依赖。 collections模块的namedtuple()函数(实际上是一个工厂方法)提供了一个tuple的子类,该类拥有tuple的常规操作,同时提供了按名称访问序列元素的能力。 命 阅读全文
摘要:
有时候,需要根据已知的字典对象构造一个新的字典对象。这种场景可以使用字典生成式(dictionary comprehension)。如下: 同样,也可以使用dict的构造函数,如下: 然而,使用字典生成式更清晰,实际运行速度要快得多(在示例中使用的字典上测试时速度快两倍)。 下面是另一种示例: 阅读全文
摘要:
序列中的数据,经常需要提取特定条件的数据,或减少序列中的数据。 常用的方式是使用列表生成式(list comprehension),如下: 有些时候,过滤条件比价复杂,难以使用简单的列表生成式或生成器表达式来过滤。比如说,过滤条件涉及到异常的处理或其他更复杂的情形。对于以上情况,我们可以将过滤条件的 阅读全文
摘要:
有一系列字典或实例,并且希望根据特定字段的值(例如日期)对分组(group)的数据进行迭代。 下面有一个子项为字典的序列(list),假如要根据日期(date)进行分组迭代: 在根据指定项分组之前,我们需要针对该项进行排序。排序后,相同指定项的为一组。 若只想将相同域的项合并到一个大的数据结构中,如 阅读全文