如何得到函数startswith()为true的值的索引?

时间:2016-04-13 03:27:46

标签: python list indexing startswith

如何获取函数" startswith()"的值的索引?是真的吗?

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

如果float以" 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的指数。

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:2)

使用列表推导和enumerate

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

答案 2 :(得分: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]

这不会打印逗号,但这应该很容易添加,因为我不确定你是否想要逗号,或者只是一种显示你想要的东西。