如何从输入行中提取两个数字并用制表符分隔它们?

2024-09-26 22:12:04 发布

您现在位置:Python中文网/ 问答频道 /正文

myString = "Exon        51 100.0 1446231 1446281 NW_003101558.1     1    51 XM_002612573.1  Branchiostoma floridae hypothetical protein, mRNA"  
print myString.split('100.0')[1].split(" ")[2]

这就是我被困的地方。我想从第二次拆分(“1446231 1446281”)中得到两个数字,但我只得到第二个。你知道吗

理想情况下,我希望“exon14462311446281”作为输出-所有制表符分隔。谢谢你的帮助。你知道吗


Tags: 地方情况数字splitprint理想xmnw
3条回答

只是一行中的另一个解决方案:

>>> print '\t'.join([y for x,y in enumerate(myString.split()) if x in (0,3,4)])
Exon    1446231 1446281
>>>

只需存储split()调用的结果,就可以访问所需的元素。你知道吗

然后可以将这些元素与^{}连接在一起:

>>> myString = "Exon        51 100.0 1446231 1446281 NW_003101558.1     1    51
XM_002612573.1  Branchiostoma floridae hypothetical protein, mRNA"
>>> s = myString.split()
>>> print '\t'.join((s[0], s[3], s[4]))
Exon    1446231 1446281
>>>

对于更复杂的场景,单次拆分可能是不够的,但你会明白的。你知道吗

因为看起来您有一个不同数量的空格来分隔字符串的不同字段,所以使用正则表达式来分割字符串。你知道吗

import re
s = re.split('\s+', myString)
print '\t'.join([s[0], s[3], s[4]])

相关问题 更多 >

    热门问题