2012-04-13 11 views
4

Ich muss eine Funktion implementieren, die als Parameter eine Liste von Namen (Strings) und einen anderen Parameter übernimmt, der eine Liste von Zeichen übernimmt. Die Funktion sollte die Namen in der ersten Liste ausgeben, die mit den Buchstaben in der zweiten Liste beginnen. Wenn die Liste leer ist, wird die Funktion nicht gedruckt.Erhalte eine Liste von Namen, die mit bestimmten Buchstaben beginnen

hier ist, wie der Funktionsaufruf wie und

>>> selectSome(["Emma", "Santana", "Cam", "Trevor", "Olivia", "Arthur"], ['A', 'B', 'C', 'D', 'E', 'F']) 
Emma 
Cam 
Arthur 
>>> selectSome(["Holly", "Bowel", "champ", 'Fun', 'Apu'], ['a', 'F', 'C']) 
champ 
Fun 
Apu 

>>> selectSome([], ['a', 'b', 'c']) 

>>> selectSome(['Eva', 'Bob'], []) 
>>> 
+0

+1 für die tatsächliche Veröffentlichung einer klaren Erklärung, was Sie wollen, zusammen mit Beispiel Eingabe und Ausgabe, um zu demonstrieren, wie es funktionieren sollte. -1, um nicht zu demonstrieren, welche Forschung du gemacht hast, bevor du zu uns gekommen bist. Ein guter Anfang. –

Antwort

8

seine Ausgänge Hier ist der Kern dessen, was Sie brauchen aussehen:

>>> names = ['Alpha', 'Bravo', 'Charlie', 'Delta', 'Echo', 'Foxtrot'] 
>>> first_letters = ['A','B','C'] 
>>> output_names = [name for name in names if (name[0] in first_letters)] 
>>> output_names 
['Alpha', 'Bravo', 'Charlie'] 

Ich lasse Einwickeln, dass als Funktion bei Ihnen .

Testen Sie Ihr Verständnis:

  1. wie Sie diese Groß- und Kleinschreibung machen?
  2. Verstehst du, was Zeile 3 tut? (es heißt Liste Verständnis.) Können Sie die entsprechende for Schleife schreiben?
+3

Natch, das waren wahrscheinlich Hausaufgaben und ich hätte nicht so viel Antwort geben sollen. In Zukunft wird von Ihnen erwartet, dass Sie zeigen, dass Sie versucht haben, Ihr eigenes Problem zu lösen ("Was haben Sie versucht?"), Bevor Sie diese Hilfe erhalten. –

10

prüfen Python-Dokumentation für die "starts" String-Methode: http://docs.python.org/library/stdtypes.html#str.startswith

str.startswith (Präfix [, Start [, end]]) Return True, wenn String beginnt mit der Präfix, andernfalls gib Falsch zurück. Präfix kann auch ein Tupel von Präfixen sein, nach denen gesucht werden soll. Mit optionalem Start beginnt die Testreihe bei diese Position. Mit dem optionalen Ende stoppen Sie den Vergleich der Zeichenkette an der Position .

Geändert in Version 2.5: Tupel als Präfix akzeptieren.

+1

Ah, das ist in der Tat eine bessere Lösung. +1. (Von C und dann MATLAB kommend, denke ich an alles in Bezug auf Array-Indexierung statt "beginnt mit".) –

Verwandte Themen