小编Mik*_*rds的帖子

jQuery过滤器和反向过滤器

我正在寻找一种更短的写作方式:

$('div')
.filter(function(value) {
   return runMyTestFunction(value);
})
.hide()
.end()
.filter(function(value) {
   return !runMyTestFunction(value);
})
.show();
Run Code Online (Sandbox Code Playgroud)

希望有些东西:

$('div')
.filter(function(value) {
   return runMyTestFunction(value);
})
.hide()
.end()
.remove(theLastWrappedSetPoppedOfftheJqueryStack)
.show();
Run Code Online (Sandbox Code Playgroud)

我想将'runMyTestFunction'内联定义为lambda,因为我认为它会使代码更清晰,但是我必须复制它.

jquery

5
推荐指数
1
解决办法
3050
查看次数

Python生成器索引优化

假设我有一个生成器,我想从第10个元素中拉出但忽略前9个.生成器是我编写的函数,看起来像这样:

def myGenerator(arg1, arg2):
    for i in arg1:
        myState = doSomeWork(i, arg2)
        yield expensiveOperation(myState)
Run Code Online (Sandbox Code Playgroud)

现在我可以使用它并从中获取第10个索引,如下所示:

myGen = myGenerator(list1, list2)
tenthElement = next(itertools.islice(myGen,10,11))
Run Code Online (Sandbox Code Playgroud)

我想知道这是运行expensiveOperation十次,还是只运行一次?(编辑:它称之为10次,但下一部分是我感兴趣的.)有没有办法优化掉其他9个调用,expensiveOperation因为它们被丢弃了?(为清晰起见编辑)

我能想到的,不涉及使用发电机功能,并会正是我想要给其他几个解决方案,但语法是不是只是通过更换转向迭代函数为发电机作为清洁returnyield.

编辑:我不一定试图解决这个特定问题,而是寻找一种廉价"滚动"发电机的方法.在我正在使用的实际案例中,当我myGenerator第一次打电话时,我实际上并不知道我想要哪个索引.我可能会获得第15个指数,然后是第27个指数,然后是第82个指数.我可能想办法在第一次通话时切到第15位,但接下来我需要再滚动12次.

python generator

3
推荐指数
1
解决办法
616
查看次数

标签 统计

generator ×1

jquery ×1

python ×1