2016-04-13 16 views
0

関数 "startswith()"が真である値のインデックスを取得するにはどうすればよいですか?function startswith()がtrueの場合、値のインデックスを取得するにはどうすればよいですか?

たとえば、リストがあるとします。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つの遺伝子を与える:

今私が持っています。

Iが印刷したい:

gene1, gene2, 2, 0.3, 6, 0.4

2が0.3が発生指標である

、及び図6は、0.4が発生するインデックスです。

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

答えて

1

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

1

は、リストの内包とenumerateを使用して考えてみましょう。あなたが今しているインデックスを知るための変数有する第1、:

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] 

これにカンマが印刷されませんが、私はあなたがコンマを望んでいないか、あなたが望むものを見せてくれるだけの方法だったので、簡単に追加できます。

0

私はそれを参照してください方法あなたは2つのオプションがあります。

関連する問題