2017-03-09 5 views
-4

Lassen Sie uns sagen, dass ich eine Liste von Namen haben:Normalisieren eine Liste von Namen in Python

names = ['King ARTHUR', 
     'Lancelot The brave', 
     'galahad the pure', 
     'Servant patsy', 
     'GALAHAD THE PURE'] 

Wie könnte ich die Liste normalisieren, so dass „die“ immer in Klein sind und nur die ersten Buchstaben der Namen sind captilized und löschen Sie die zusätzlichen Leerzeichen und die duplizierten Namen von der Liste

ex: .Galahad die reine

+2

Willkommen bei StackOverflow! Diese Website soll eine Datenbank mit Fragen und Antworten für Programmierer sein, die an einem bestimmten technischen Problem festhalten können. Ihre Frage scheint eher ein "Ich muss etwas Code schreiben, um diese Aufgabe auszuführen, aber ich weiß nicht, wo ich anfangen soll". Es ist sehr spezifisch und unwahrscheinlich, anderen in der Zukunft zu helfen. Dies ist leider keine gute Lösung für SO. Bitte, schlage vor, dass du dir [ask] anschaust. Wenn Sie bereits versucht haben, dies selbst zu programmieren, dann zeigen Sie bitte Ihre Bemühungen und sagen Sie uns, wie es nicht funktioniert hat – SiHa

+1

Haben Sie selbst etwas probiert? Wir sind nicht hier, um Ihren Code zu schreiben – PinkFluffyUnicorn

+0

Vielleicht beginnen Sie mit der [String Methoden] (https://docs.python.org/3/library/stdtypes.html#string-methoden), z. 'capitalize()' klingt wie etwas, das Sie tun möchten. Probieren Sie etwas für sich aus und kommen Sie hierher zurück, wenn Sie spezifische Fragen haben. –

Antwort

0

Sie String-Methoden verwenden können. Wenn Sie in irgendeiner Form auf das "Das" stoßen, schreiben Sie es einfach in Kleinbuchstaben. Jeder andere Teil der Zeichenfolge wird als Name angenommen und großgeschrieben.

names = list(set([' '.join(i.lower() if i.lower() == 'the' else i.capitalize() for i in name.split()) 
        for name in names])) 

Dies verwendet die () Methode kommt wieder die modifizierten Teile der Zeichenfolge zu fusionieren und baut eine neue Liste basierend auf dem Listennamen. Um Duplikate zu eliminieren, wird die Set-Funktion verwendet, schließlich wird das Set wieder in eine Liste konvertiert.

Verwandte Themen