首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >python中紧跟在特定字符串之后的索引

python中紧跟在特定字符串之后的索引
EN

Stack Overflow用户
提问于 2021-02-25 09:05:29
回答 2查看 35关注 0票数 0

我有一个以制表符分隔的文件,其值如下:

代码语言:javascript
运行
AI代码解释
复制
12  6814296 2   192 C:0.911458  T:0.0885417
12  6814328 2   192 C:1 T:0
12  6814345 2   192 C:1 T:0
12  6814360 2   192 C:1 T:0
12  6814381 2   192 G:1 A:0
12  6814396 2   192 C:1 A:0
12  6814397 2   192 G:0.989583  A:0.0104167
12  6814464 2   192 T:1 C:0
12  6814468 2   192 C:0.927083  TCCC:0.0729167
12  6814486 2   192 C:1 T:0
12  6814551 2   192 G:1 C:0
12  6814567 2   192 A:1 G:0
12  6814589 2   192 C:0.989583  T:0.0104167
12  6814619 2   192 G:1 A:0
12  6814663 2   192 A:1 G:0
12  6814732 2   192 C:1 T:0
12  6814752 4   192 CTTT:0.979167   CTTTTT:0    CT:0.015625 C:0.00520833
12  6814786 2   192 C:1 <CN0>:0
12  6814798 2   192 C:0.984375  T:0.015625
12  6814828 2   192 C:0.989583  G:0.0104167
12  6814951 2   192 G:1 C:0

在这个文件中,我必须创建一个csv文件,其中每行有3个逗号分隔值。

下面是我的代码:

代码语言:javascript
运行
AI代码解释
复制
file1 = open('/home/aahm/Documents/gene1.frq', 'r')
input_data = file1.readlines()
for line in input_data:
    rm_newline = line.strip('\n')
    comma_separated = rm_newline.split('\t')
    a = comma_separated[0]
    b = comma_separated[1]
    c = comma_separated[-1]
    d = c[2:]
    if comma_separated [2] == '2':
        e = a + ','+ b +',' + d
        print (e)
    elif comma_separated [2] == '3':
        f = comma_separated[-1]
        g = f[2:]
        h = comma_separated[-2]
        i = h[2:]
        if g > i:
            j = a + ','+ b +',' + g
            print (j)
        else:
            k = a + ','+ b +',' + i
            print (k)
    elif comma_separated [2] == '4':
        l = comma_separated[-1]
        m = l[2:]
        n = comma_separated[-2]
        o = n[2:]
        p = comma_separated[-3]
        q = p[2:]
        if m > o and m > p:
            r = a + ','+ b +',' + m
            print (r)
            
        elif o > m and o > p:
            s = a + ','+ b +',' + o
            print (s)
            
        elif p > m and p > o:
            t =  a + ','+ b +',' + p
            print (t)

代码运行得很好,除了我使用了以下索引:

代码语言:javascript
运行
AI代码解释
复制
d = c[2:]
g = f[2:]
i = h[2:] 

等。

对于输入文件中的第6列、第7列和第8列,我只需要输出数字。但是,当':‘前面的字符串大于1时,我的索引会给出字符串和某些行的数字。

最后一列中的值是TCCC:0.0729167,对应一行。当索引'd = c2:‘用于索引时,我得到CC: 0.0729167作为输出,而我只需要0.0729167作为输出。

我被这个问题困住了,完全没有任何关于如何继续的提示。如果有任何帮助,我将非常感激。谢谢!

EN

回答 2

Stack Overflow用户

发布于 2021-02-25 09:12:48

您将列表从第三个字符(包含)切分到末尾,这将在您的示例中显示“CC:0.0729167”。正如其他人在评论中所说,您可以只使用yourstring.split(":")[1]来根据冒号的位置拆分字符串,然后通过使用[1]指定其索引来检索字符串的后半部分。

票数 1
EN

Stack Overflow用户

发布于 2021-02-25 09:58:12

根据其他人的评论,如果您在列数据中保留了一个":“,则需要将其拆分。然而,这里的代码已经相当不透明了--所有的字母变量使得我们很难看到一段简单的代码到底想要做什么。为了避免更糟糕的情况,在下面的示例中,我定义了一个简单的函数getnum,您可以向它提供一个字段,如果需要,它将为您执行拆分。当然,如果字段有多个":“字符,这将不起作用,但修改getnum将非常容易。然后,我修改了代码,通过这个getnum函数运行每个字段。

为了让自己的生活更轻松,我鼓励您使用比a、b、c等更有意义的变量名。此外,这里和那里的一些解释注释将会有很大的帮助-我认为有了这些,你可能已经能够自己解决这个问题了!

代码语言:javascript
运行
AI代码解释
复制
input_data = file1.readlines()

# process a field to only use numbers after a :
def getnum(src):
    if ":" in src:
        return src.split(":")[1]
    else:
        return src

for line in input_data:
    rm_newline = line.strip('\n')
    comma_separated = rm_newline.split('\t')
    a = getnum(comma_separated[0])
    b = getnum(comma_separated[1])
    c = getnum(comma_separated[-1])
    d = c[2:]
    if comma_separated [2] == '2':
        e = a + ','+ b +',' + d
        print (e)
    elif comma_separated [2] == '3':
        f = getnum(comma_separated[-1])
        g = f[2:]
        h = getnum(comma_separated[-2])
        i = h[2:]
        if g > i:
            j = a + ','+ b +',' + g
            print (j)
        else:
            k = a + ','+ b +',' + i
            print (k)
    elif comma_separated [2] == '4':
        l = getnum(comma_separated[-1])
        m = l[2:]
        n = getnum(comma_separated[-2])
        o = n[2:]
        p = getnum(comma_separated[-3])
        q = p[2:]
        if m > o and m > p:
            r = a + ','+ b +',' + m
            print (r)
            
        elif o > m and o > p:
            s = a + ','+ b +',' + o
            print (s)
            
        elif p > m and p > o:
            t =  a + ','+ b +',' + p
            print (t)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66365419

复制
相关文章
工作角色与家庭角色冲突
2020 年的工作正式开启,大多数开发者的开工方式是云办公。对开发者来说,云办公意味着什么?如何开始云办公?云办公的发展趋势会怎样?基于此,云加社区联手知乎科技,从知乎云办公相关话题中精选内容落地社区专题「 开发者云办公模式洞察 」。
腾讯云开发者社区
2020/03/20
1.3K0
Rails里应用Devise
Use Devise For Authentication Devise is great gem for authentication, check out here. Add Gem First thing you need to do is to add devise gem to you Gemfile. Just add gem 'devise', '~> 3.5' to your Gemfile and run bundle install and restart your server. Se
用户2183996
2018/06/28
3500
MySQL管理——激活角色
MySQL8.0提供了角色功能,用户需要在激活角色后才能够使用角色赋予的权限。角色可以在服务器、用户和会话三个级别进行激活。用户仅能激活已被授予的角色
MySQLSE
2023/08/31
5240
MySQL管理——激活角色
OpenShift-角色管理
集群级别Role(Cluster Role) admin:可管理除了项目quota外其它所有项目包括的资源对象。 basic-user:可以获得项目和用户的基本信息。 cluster-admin:可以对任何项目进行任何操作。 cluster-status:可以获得集群状态信息的角色。 edit:除了Role和Binding外,可以修改项目中其它对象。 self-provisioner:可以创建属于自己的项目。 view:不能对项目中的对象进行任何更改,但是可以查看项目中的对象 oc get c
heidsoft
2021/08/26
7650
OpenShift-角色管理
为什么游戏角色没有胡子?
点击标题下「大数据文摘」可快捷关注 福布斯中文网授权转载 本文作者JV Chamary是生物学家和作家。 译 于波 校 李其奇 摘自:福布斯中文网(微信公号: forbeschinaonline) 很多角色扮演游戏都允许玩家定制游戏人物的面部特征,由《光晕》(Halo)这款游戏的创造者开发的新款“共享世界射击游戏”也不例外。 在选择种族(人类、觉醒者或Exo机械族)后,你可以调整包括脸型、发型、眼睛颜色和肤色在内的所有面部特征,创造出独一无二的游戏人物。只不过缺少了一样东西:胡子。 从《命运》的Beta测试
大数据文摘
2018/05/22
9880
【学生管理系统】权限管理之角色管理
   @PostMapping("/addPerm")    public BaseResult addPermWithRoleId(@RequestBody SysRole sysRole) {        try {            // 添加权限            sysRolePermissionService.addPermWithRoleId(sysRole); ​            // 提示            return BaseResult.ok("授权成功");       } catch (Exception e) {            return BaseResult.error("授权失败");       } ​   }
陶然同学
2023/02/24
1.9K0
【学生管理系统】权限管理之角色管理
MySQL8.0 角色管理
官方文档的第一句话,就开门见山的告诉了我们角色是什么东西。A MySQL role is a named collection of privileges. Like user accounts, roles can have privileges granted to and revoked from them.
AsiaYe
2021/11/25
1.6K0
造轮子之角色管理
在asp.net core identity中已经有RoleManager,我们只需要封装一下API操作Role即可完成我们角色管理相关功能,这里API打算只提供分页查询,创建以及删除,不提供修改API。
饭勺oO
2023/10/18
1610
Oracle 用户、角色管理简介
3)DEFAULT TABLESPACE testtbs001:指定在用户方案(schema)中创建的对象的默认表空间为testtbs001
授客
2019/09/11
1.2K0
Grafana -- 用户角色管理(三)
在日常 Grafana 使用中需要针对不同用户开放不同的 dashboard 权限,根据不同角色进行权限管理。Grafana 角色大致分为以下三类:
Kevin song
2020/11/06
5.6K0
那些数据工作中的角色
数据工作中有一类非常重要的角色,那就是数据分析师。为什么这个角色这么重要呢?因为要是没有这个角色,不管一个企业中的数据管理做得有多么好都没用,都无法带来实际的价值。这些数据就像是藏在海底的石油,而数据分析师就是开采海底石油的油井设备。要想让石油用于汽车轮船,需要通过这些设备先将海底的石油抽取出来,经过加工处理,提纯。
ThoughtWorks
2021/07/02
4780
PostgreSQL用户角色和权限管理
4、任何属于该组角色的对象都必须先被删除或者将对象的所有者赋予其它角色,任何赋予该组角色的权限也都必须被撤消。
数据和云
2022/02/25
4.8K0
PostgreSQL用户角色和权限管理
MySQL 8.0用户和角色管理
MySQL8.0新加了很多功能,其中在用户管理中增加了角色的管理,默认的密码加密方式也做了调整,由之前的sha1改为了sha2,同时加上5.7的禁用用户和用户过期的设置,这样方面用户的管理和权限的管理,也增加了用户的安全性。
田帅萌
2018/08/14
2.9K0
MySQL 8.0用户和角色管理
SQLServer 服务器角色管理
常用的为:db_datareader(查权限)db_datawriter(增删改权限)db_owner(完全权限)
李郑
2019/12/04
3.1K0
基于Python-Flask的权限管理:角色管理
一、前言 角色管理主要管理角色信息,不同的角色可以访问不同的菜单和数据。 image 二、后端实现 1.ORM类 from db import db from models.BaseModel imp
Python之道
2020/06/02
4K1
基于Python-Flask的权限管理:角色管理
POJ 1936 All in All
You have devised a new encryption technique which encodes a message by inserting between its characters randomly generated strings in a clever way. Because of pending patent issues we will not discuss in detail how the strings are generated and inserted into the original message. To validate your method, however, it is necessary to write a program that checks if the message is really encoded in the final string.
谙忆
2021/01/19
3920
​MySQL8.0角色管理---(三)
类似将角色授予账户一样,我们可以使用revoke的方法从账户中撤销角色,下面我们演示从账号yeyz_ro中撤销角色role_ro角色:
AsiaYe
2020/02/25
7030
MongoDB运维与开发(五)---角色管理
之前的两篇文章,我们已经讲清楚了MongoDB的用户权限管理,接下来的文章我们来看MongoDB的角色管理。
AsiaYe
2020/11/10
9010
MongoDB运维与开发(五)---角色管理
MySQL8.0角色管理---(一)
今天看了看MySQL8.0官方文档的角色管理部分,写点东西总结下这块的内容吧。
AsiaYe
2020/02/25
5870
技术转管理(一):角色的转变认知
祝大家国庆假期节日快乐哈。因厦门疫情比较严重,今年国庆就乖乖的宅家里啦,今天和大家聊一聊程序员如何转型做管理。
用户7533190
2022/09/22
8550
技术转管理(一):角色的转变认知

相似问题

Cakephp 403错误不显示自定义页面

12

根据标题类型显示内容

11

自定义错误页面内容未正确显示

20

根据索引页面上的内容类型自定义节点的内容块

20

显示内容自定义页面

10
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文