如何获取函数" 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的指数。
答案 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]
这不会打印逗号,但这应该很容易添加,因为我不确定你是否想要逗号,或者只是一种显示你想要的东西。