首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用bash或python从一组数字中搜索连续数字

如何使用bash或python从一组数字中搜索连续数字
EN

Stack Overflow用户
提问于 2012-11-06 05:19:44
回答 2查看 326关注 0票数 2

我有一个数字列表,如下所示:

代码语言:javascript
复制
1  0/1
2  1/1
3  1/1
4  1/1
5  1/1
6  1/1
7  0/1
8  0/1

如果第二列对于连续的行是"1/1“,我想报告位置的开始和结束,例如,在这里,它应该是: 2-6

我应该如何应用一些简单的bash代码,或者如果需要的话,应用python?

非常感谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-11-06 05:40:29

如果你能用python编写代码,你可以用下面的方法来解决:

  1. 读取你的文件。
  2. 使用正则表达式创建一个包含第一个数字的列表,只有当第二个数字是在范围中的列表时。(hint)

因此,代码将如下所示:

代码语言:javascript
复制
import re

# step 1
with open('filename') as f:
    data = f.read()

# step 2
list = re.findall(r'(\d+)\s+1/1', data)

# step 3
# Check the link in the description of the algorithm
票数 2
EN

Stack Overflow用户

发布于 2012-11-06 06:01:45

Bash解决方案:

代码语言:javascript
复制
#! /bin/bash
unset in                                 # Flag: are we inside an interval?
unset last                               # Remember the last position.
while read p f ; do
    if [[ $f = 1/1 && ! $in ]] ; then    # Beginning of an interval.
        echo -n $p-
        in=1
    elif [[ $f = 1/1 && $in ]] ; then    # Inside of an interval.
        last=$p
    elif [[ $f != 1/1 && $in ]] ; then   # End of an interval.
        echo $last
        unset in
    fi
done
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13240564

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档