如果函数startswith()为真,如何获取值的索引?

2024-05-13 06:55:34 发布

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

在函数“startswith()”为真的情况下,如何获取值的索引

例如:假设我有一个列表list = ['gene1' , 'gene2' , '0.3', '', '2.3','','0.4']

如果浮点以“0”开头,我想打印基因1和基因2的值和该值的索引

现在我有:

s = line.rstrip("\r\n").split(',')
e = [a.replace(" ", "") for a in s]
for i in e:
    if i.startswith("0."):
        print "e[0],e[1], i

但这只给了我1个值和2个基因

我想打印:

gene1, gene2, 2, 0.3, 6, 0.4

其中2是出现0.3的索引,6是出现0.4的索引


Tags: 函数in列表forline基因情况replace
3条回答

考虑一下[(i, s) for i, s in enumerate(e) if s.startswith("0.")]

使用列表理解和enumerate

indices = [index for index, s in enumerate(e) if s.startswith("0.")]

在我看来,你有两个选择。第一个,有一个变量来知道你现在所在的索引:

s = line.rstrip("\r\n").split(',')
e = [a.replace(" ", "") for a in s]
j=0
for i in e:
    if i.startswith("0."):
        print j
    print i

另一个是改变迭代的方式:

s = line.rstrip("\r\n").split(',')
e = [a.replace(" ", "") for a in s]
j=0
for i in range(len(e)):
    if e[i].startswith("0."):
        print i
    print e[i]

这不打印逗号,但这应该很容易添加,因为我不确定你想要的逗号或那些只是一种方式来显示你想要的

相关问题 更多 >