2016-04-13 19 views
0

"beginwith()" işlevinin doğru olduğu değerin indekslerini nasıl alabilirim?Fonksiyonun startwith() 'ın doğru olduğu değerlerin değerlerini nasıl alabilirim?

Örneğin: bir listenin list = ['gene1' , 'gene2' , '0.3', '', '2.3','','0.4'] olduğunu varsayalım.

Float "0" ile başlıyorsa, bu değerin ve bu değerin indeksini 1 ve 2. gen için yazdırmak istiyorum.

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 

Ama bu beni sadece 1 değeri ve 2 genleri verir:

Şu anda var.

ben yazdırmak istiyorum:

gene1, gene2, 2, 0.3, 6, 0.4

2 0,3 oluşur endeksidir

ve 6 0.4 oluşur endeksidir.

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

cevap

1

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

1

bir liste anlama ve enumerate kullanın düşünün.

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 

böyle, sen yineleme şekilde değişiyor: Birincisi, bir değişken olan şu anda bulunan endeksi bilmek

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] 

Bu virgül yazdırmak değil, ama eklemek kolay olmalı, çünkü istediğin gibi virgül istediğinden emin değilim.