2017-12-23 18 views
0

Der folgende Code den Index der passenden Werte bekommt:Erste Indizes von Suchergebnissen

x = ["Moon", "Earth", "Jupiter", "Neptune", "Earth", "Venus"] 
get_indexes = lambda x, xs: [i for (y, i) in zip(xs, range(len(xs))) if x == y] 
print(get_indexes("Earth", x)) 

Der folgende Code extrahiert die Spitzen, die die Bedingungen:

intensitySortedPeaks = sorted(peaks, key=lambda p: p.Intensity, reverse=True) 
for i in range(len(intensitySortedPeaks)): 
    testMass = intensitySortedPeaks[i].MZ + 1.0033 
    results = [p for p in intensitySortedPeaks if abs(GetPPMError(p.MZ,testMass)) < 10] 
###how do we get the indexes saved as indeResults 

Wie erhalte ich die Indizes der Elemente, die in der Ergebnisvariablen gespeichert wurden. Ich möchte diese Elemente aus der ursprünglichen intensitySortedList in der Schleife entfernen

Wie kann ich den obigen Code ändern, um diese Aufgabe zu erfüllen?

+0

erklären es etwas mehr, was genau wollen Sie und Post Beispielausgabe auch. –

+0

Ich möchte die Indizes des Suchergebnisses, so dass ich diese Elemente in der ursprünglichen Liste entfernen kann – im281

+0

Wo ist das Suchergebnis und von wo Sie entfernen möchten, anstelle von Kommentar aktualisieren Sie Ihre Antwort mit vollständigen Informationen und veröffentlichen, wie Ihre erwartete Antwort aussieht. –

Antwort

0

Wenn nur Indizes wollen Elemente passender dann versuchen:

def indices_satisfying(fn, lst): 
    return [index for index,x in enumerate(lst) if fn(x)] 

Wenn Sie die befriedigende Elemente

tun entfernen möchten
def removing_satisfying(fn, lst]: 
    return [x for x in lst if not fn(x)] 
+0

Fn ist eine Funktion? Kannst du ein Beispiel mit der obigen Planetenliste erstellen? – im281

+0

macht mir nichts aus ich habe es. Vielen Dank! – im281

Verwandte Themen