我想创建一个过滤器,并能够将其应用于数组或散列。例如:defisodd(i)i%2==1end我希望能够像这样使用它:x=[1,2,3,4]putsx.select(isodd)x.delete_if(isodd)putsx这看起来应该是直截了当的,但我不知道我需要做什么才能让它发挥作用。 最佳答案 创建一个lambda,然后使用&运算符转换为block:isodd=lambda{|i|i%2==1}[1,2,3,4].select(&isodd) 关于ruby-如何在Ruby中创建可重
要检查奇数和偶数,最低位检查是否比使用模数更有效?>>>defisodd(num):returnnum&1andTrueorFalse>>>isodd(10)False>>>isodd(9)True 最佳答案 是的。标准库中的timeit模块是您检查这些事情的方式。例如:$python-mtimeit-s'defisodd(x):x&1''isodd(9)'1000000loops,bestof3:0.446usecperloop$python-mtimeit-s'defisodd(x):x&1''isodd(10)'1000000
要检查奇数和偶数,最低位检查是否比使用模数更有效?>>>defisodd(num):returnnum&1andTrueorFalse>>>isodd(10)False>>>isodd(9)True 最佳答案 是的。标准库中的timeit模块是您检查这些事情的方式。例如:$python-mtimeit-s'defisodd(x):x&1''isodd(9)'1000000loops,bestof3:0.446usecperloop$python-mtimeit-s'defisodd(x):x&1''isodd(10)'1000000