按条件跳过迭代器中的前一部分元素
有时候,我们需要按照一定条件来过滤掉迭代器前一部分的元素,例如需要从第一个不小于5的数字开始迭代。这时,我们可以使用itertools模块中的dropwhile函数来实现
我们可以向dropwhile函数中第一个参数传入一个lambda表达式,dropwhile函数自动丢弃迭代器中满足这个表达式的元素,直到遇见第一个不满足该表达式的元素,从这个数据开始迭代
需要注意的是,dropwhile只会跳过迭代器中前一部分元素,如果此迭代器后面的元素有不满足该表达式的,并不会过滤掉,例如
如果只要想迭代器所有满足表达式的元素,那么我们可以使用filter函数
对多个有序序列进行合并,并且对整个有序序列进行迭代
当有多个有序序列时,想要合并这些序列,并且使之成为一个有序序列进行迭代,这时,我们可以使用heapq.merge方法来完成这个任务
需要注意的是传入heapq.merge方法中的序列必须是有序的,heapq.merge对输入序列本身并不会做任何检查
计算字符串表达式
假设有一个字符串'1 + 2 + 3',我们可以使用eval函数来计算其值
eval函数可以计算字符串表达式的值。使用eval函数带来的一个好处就是可以动态的产生代码,例如我们需要定义一个函数,其输入为两个变量名,而输出为这两个变量的和,这时使用eval可以方便地实现这个函数
领取专属 10元无门槛券
私享最新 技术干货