标签: range

为什么Enumerable.Range比直接yield循环更快?

下面的代码是检查执行相同解决方案的三种不同方式的性能.

    public static void Main(string[] args)
    {
        // for loop
        {
            Stopwatch sw = Stopwatch.StartNew();

            int accumulator = 0;
            for (int i = 1; i <= 100000000; ++i)
            {
                accumulator += i;
            }

            sw.Stop();

            Console.WriteLine("time = {0}; result = {1}", sw.ElapsedMilliseconds, accumulator);
        }

        //Enumerable.Range
        {
            Stopwatch sw = Stopwatch.StartNew();

            var ret = Enumerable.Range(1, 100000000).Aggregate(0, (accumulator, n) => accumulator + n);

            sw.Stop();
            Console.WriteLine("time = {0}; result = {1}", sw.ElapsedMilliseconds, ret);
        }

        //self-made IEnumerable<int>
        {
            Stopwatch sw = Stopwatch.StartNew();

            var ret = …
Run Code Online (Sandbox Code Playgroud)

c# performance ienumerable range enumerable

11
推荐指数
2
解决办法
6503
查看次数

获取所选文本的所有DOM块元素

在HTML文档中选择文本时,可以从一个DOM元素开始到另一个元素,可能在途中传递其他几个元素.使用DOM API,可以获取所有选定DOM元素的选择范围,选定文本甚至父元素(使用基于使用的浏览器的commonAncestorContainer或parentElement()).但是,我无法知道除了获取包含所有文本的单个父元素之外,还可以列出包含所选文本元素的所有元素.使用父节点并遍历子节点将不会这样做,因为可能有其他兄弟节点未在此父节点内选择.

那么,是否有一种方法可以获得包含所选文本的所有这些元素.我主要感兴趣的是获取块元素(p,h1,h2,h3,...等),但我相信如果有办法获取所有元素,那么我可以通过它们并过滤它们来得到我想.我欢迎任何想法和建议.

谢谢.

html javascript dom range selection

11
推荐指数
2
解决办法
7192
查看次数

Ruby:两个范围之间的交集

在ruby中,给定两个日期范围,我想要表示两个日期范围的交集的范围,或者如果没有交叉则为零.例如:

(Date.new(2011,1,1)..Date.new(2011,1,15)) & (Date.new(2011,1,10)..Date.new(2011,2,15))
=> Mon, 10 Jan 2011..Sat, 15 Jan 2011
Run Code Online (Sandbox Code Playgroud)

编辑:应该说我希望它也适用于DateTime,所以间隔可以缩短到分钟和秒:

(DateTime.new(2011,1,1,22,45)..Date.new(2011,2,15)) & (Date.new(2011,1,1)..Date.new(2011,2,15))
=> Sat, 01 Jan 2011 22:45:00 +0000..Tue, 15 Feb 2011
Run Code Online (Sandbox Code Playgroud)

ruby date range

11
推荐指数
2
解决办法
8246
查看次数

sed从特定匹配行中删除一系列行TILL特定匹配行(不包括最后一行)

我通过论坛阅读了如何解决我的问题的线索,但是没有任何相关的线程可用于我,具有有限的编程知识,适用于我的具体问题.

我的问题是:我需要摆脱整个文件中聚集的垃圾行,但是在可用行集群之间.我搜索了有关删除匹配模式的范围的sed手册和其他信息来源,但他们只提到删除UNTIL匹配模式,而不是TILL.

现在我想指定一个范围,sed从第一行开始删除与模式行匹配的行,直到与其他模式匹配的行.此外,sed需要识别行末的模式.

例如:

line 1
blah blah 1
blah blah 2
blah blah 3
blah blah 4
line 2
line 3
Run Code Online (Sandbox Code Playgroud)

结果需要是:

line 1
blah blah 1
line 2
line 3
Run Code Online (Sandbox Code Playgroud)

请注意线和线2之间的多条线.虽然需要保留blah blah 1,但需要删除其他3条线.

谢谢!

sed range

11
推荐指数
1
解决办法
6024
查看次数

在数据框中将重叠范围合并到唯一组中

我有一个n行和3列的数据帧

df <- data.frame(start=c(178,400,983,1932,33653),
    end=c(5025,5025, 5535, 6918, 38197),
    group=c(1,1,2,2,3))

df
  start   end group
1   178  5025     1
2   400  5025     1
3   983  5535     2
4  1932  6918     2
5 33653 38197     3
Run Code Online (Sandbox Code Playgroud)

我想创建一个新列df$group2,重新分类重叠的组是相同的.例如,df$group[df$group==1]从178开始并在5025结束.这与df$group[df$group==2]从983开始并在6918结束重叠.我想创建一个新列,现在将组1和2分类为组1(随后,组3作为组2).

结果:

df
  start   end group group2
1   178  5025     1      1
2   400  5025     1      1
3   983  5535     2      1
4  1932  6918     2      1
5 33653 38197     3      2
Run Code Online (Sandbox Code Playgroud)

在此先感谢您的帮助.

r range overlap dataframe data.table

11
推荐指数
1
解决办法
2407
查看次数

在elasticsearch中过滤_id范围

我试图按范围过滤弹性搜索中的_id字段(索引未启用).可能吗?如果是这样,怎么办?我在弹性搜索文档中读到,我们可以使用'id'来查询_id和类型,但我看不出如何使用范围过滤器.(我不想在_id上启用索引).

{
  "from": 0,
  "size": 20,
  "query": {
    "match_all": {}
  },
  "filter": {
        "range": {
          "_id": {
            "gt": "51f7b6b7710c42b136027581"
          }
        }
  },
  "sort": {
    "pubdate": {
      "order": "desc"
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

range filter elasticsearch

11
推荐指数
1
解决办法
2765
查看次数

计算0到N之间的K数

问题:

我见过这样的问题:

  1. count the number of 0s between 0 and N?
  2. count the number of 1s between 0 and N?
  3. count the number of 2s between 0 and N?
  4. ......

这些类型的问题与要求查找Ks (i.e. K=0,1,2,...,9)数字范围中显示的总数非常相似[0, N].

例:

  • 输入: K=2, N=35
  • 输出: 14
  • 细节:2s之间的列表[0,35]:2, 12, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 32,注意22将被计为两次(22包含两个2s)

我们有什么:

每种方案都有解决方案(如果您搜索它,则可用).通常,O(log N)需要时间来通过递归地考虑最高位来解决这些问题,等等.计算0到N之间2的数量的一个例子可以通过以下过程解决(从这里借用):

// Take n = …
Run Code Online (Sandbox Code Playgroud)

algorithm numbers range counting time-complexity

11
推荐指数
2
解决办法
1万
查看次数

从字符串中获取范围

我想检查一个字符串是否只包含数字.我遇到了用Objective-C编写的这个答案.

NSRange range = [myTextField.text rangeOfCharacterFromSet:[NSCharacterSet letterCharacterSet]];
if(range.location == NSNotFound) {
    // then it is numeric only
}
Run Code Online (Sandbox Code Playgroud)

我尝试将其转换为Swift.

let range: NSRange = username.rangeOfCharacterFromSet(NSCharacterSet.letterCharacterSet())
Run Code Online (Sandbox Code Playgroud)

我遇到的第一个错误是我分配了类型NSRange.

无法转换表达式的类型'Range?' 输入'NSRange'

所以我删除了NSRange,错误就消失了.然后在if语句中,

let range = username.rangeOfCharacterFromSet(NSCharacterSet.letterCharacterSet())
if range.location == NSNotFound {

}
Run Code Online (Sandbox Code Playgroud)

我遇到了另一个错误.

'范围?' 没有名为'location'的成员

请注意,变量username的类型String不是NSString.所以我猜Swift使用它的新Range类型而不是NSRange.

问题我不知道如何使用这种新类型来实现这一目标.我也没有遇到过任何文档.

任何人都可以帮我把这个代码转换成Swift吗?

谢谢.

range ios nsrange swift ios8

11
推荐指数
1
解决办法
6621
查看次数

Python:包含范围列表的合并列表

我有一个list:

L = ['a', 'b']
Run Code Online (Sandbox Code Playgroud)

我需要创建一个新的list通过串联原始list范围从去1k.例:

k = 4
L1 = ['a1','b1', 'a2','b2','a3','b3','a4','b4']
Run Code Online (Sandbox Code Playgroud)

我尝试:

l1 = L * k
print l1
#['a', 'b', 'a', 'b', 'a', 'b', 'a', 'b']

l = [ [x] * 2  for x in range(1, k + 1) ]
print l
#[[1, 1], [2, 2], [3, 3], [4, 4]]

l2 = [item for sublist in l for item in sublist]
print l2
#[1, 1, 2, 2, …
Run Code Online (Sandbox Code Playgroud)

python list-comprehension list range python-2.7

11
推荐指数
1
解决办法
653
查看次数

如何在pandas date_range方法中包含结束日期?

pd.date_range('2016-01', '2016-05', freq='M', ).strftime('%Y-%m')上个月开始2016-04,但我期待它2016-05.在我看来,这个函数的行为与range方法类似,其中end参数不包含在返回数组中.

有没有办法在返回的数组中包含结束月份,而不处理结束月份的字符串?

python string datetime range pandas

11
推荐指数
3
解决办法
4352
查看次数