2017-07-11 2 views
3

Ich versuche, eine E-Mail-Liste zu filtern, um nur die Gmail zu drucken. Die Liste enthält mehrere durch Komma getrennte E-Mails für jede Person. Ich möchte jede Person gmail abrufen, während ich die Reihenfolge der entsprechenden Namen behalte.Entfernen Sie alle E-Mails in einer Liste mit Ausnahme von Gmail

class engineerInfo: 
firstName = "" 
lastName = "" 
email = "" 
title = "" 

engineers = [] 

for col in rows: 
    e = engineerInfo() 
    e.firstName = col[0] 
    e.lastName = col[1] 
    e.email = col[2] 
    e.title = col[3] 
    engineers.append(e) 

while True: 
    print("1- Print gmails of software engineers") 
    choice = int(input("Choose from the menu:")) 

if choice == 1: 
    emailList = [] 
    for i in engineers: 
     if i.email not in emailList: 
      emailList.append(i.email) 

    gmailList = [] 
    for i in emailList: 
     if i != 'gmail.com': 
      continue 
     else: 
      gmailList.append(i)  
    print(gmailList) 
+1

Python ist Platz empfindlich. Bitte füge deinen Code so ein, dass er hier genauso erscheint wie in deinem Editor. –

+0

Können Sie einige Beispieldaten posten? – Sriram

+0

@WillemVanOnsem. Mindestens einer der Tags, die Sie hinzugefügt haben (Google Mail), stimmt nicht mit den Richtlinien für die Verwendung des Tags überein. Dies ist eine Textverarbeitungsfrage. Es hat wirklich nichts mit E-Mail oder Google Mail zu tun. –

Antwort

5

Die Überprüfung sollte .endswith('@gmail.com') sein. Allerdings E-Mail-Adressen sind Groß- und Kleinschreibung wie (ein dickes Lob an @kwhicks):

gmailList = [] 
for i in emailList: 
    if i.lower().endswith('@gmail.com'): 
     gmailList.append(i) 
print(gmailList)

Aber Sie besser Liste Verständnis dafür verwenden (die gesamtefor Schleife ersetzt):

gmailList = [i for i in emailList if i.lower().endswith('@gmail.com')] 
+0

'print' außerhalb der Schleife? –

+0

@MadPhysicist: behoben =). –

+0

Schön. Ich habe auch den fehlenden Backtick für dich geschlossen. –

Verwandte Themen