2016-11-04 5 views
1

Zum Beispiel versuche ich, den Benutzer eine Provinz wie "Alberta" eingeben zu lassen und dann "AB" für den Benutzer anzeigen zu lassen. Oder umgekehrt. Ich kann nur Listen verwenden. (Der Lehrer erwähnen etwas über „parallele Listen“?)Wie mache ich ein Element in einer Liste == zu einem Element in einer anderen Liste?

Das ist, was ich versucht ...

def lists (province, abrev): 
    userInput = input("Enter Province or Abreviation: ") 
    province = ["alberta", "nova scotia", "british columbia"] 
    abrev = ["AB", "NS", "BC"] 
    for ab in range(len(province)): 
     if province["alberta"] == abrev["AB"]: 
     print("AB") 
    if userInput == province: 
     print(len(province)) 
def main(): 

    lists() 

main() 
+0

Hinweis: Sie sollten wahrscheinlich die 'ab' Variable irgendwo in Ihrer Schleife verwenden. – Kevin

+1

Sie greifen auch nicht ordnungsgemäß auf Ihre Elemente in der Liste zu. Denken Sie daran, dass der Zugriff auf Listen einen ganzzahligen Wert erfordert. – idjaw

+0

@idjaw Ich glaube, ich weiß, was du meinst, wie kann ich meine list() -Funktion richtig in main() aufrufen? –

Antwort

5

Sie zip verwenden können() zusammen zwei Listen beizutreten.

province = ["alberta", "nova scotia", "british columbia"] 
abrev = ["AB", "NS", "BC"] 

userInput = input("Enter Province or Abreviation: ") 

for prov,ab in zip(province,abrev): 
    if userInput == prov: 
     print(ab) 
    elif userInput == ab: 
     print(prov) 

Alternativ können Sie Wörterbücher verwenden. Mit dieser Methode haben Sie einen Schlüssel und einen Wert

province_dict = {'NS': 'nova scotia', 'BC': 'british columbia', 'AB': 'alberta'} 

Wenn Sie nachschlagen wollen, was Staat hat die Abkürzung ‚AB‘ dann würden Sie

print(province_dict['AB']) 

tun Da Sie mit Benutzereingaben zu tun sollten Sie verwenden

province_dict.get(userInput,'Unknown') 

Diese zurückkehren wird ‚Unknown‘, wenn das Element nicht eher im Wörterbuch gefunden wird, als eine KeyError erhöhen.

+0

Wie könnte ich das Wörterbuch mit userInput verbinden? –

+0

Der einfachste Weg ist 'print (province_dict [userInput])' – scotty3785

+0

Da Sie jedoch mit Menschen zu tun haben, die möglicherweise keinen gültigen Wert eingeben. Ich würde vorschlagen province_dict.get (userInput, 'Unknown') '. Dies wird 'Unbekannt' zurückgeben, wenn das Element nicht im Wörterbuch gefunden wird, anstatt einen KeyError zu erzeugen. – scotty3785

0

Werfen Sie einen Blick auf die index() Methode in Listen, Sie sollten nicht alle Elemente durchlaufen müssen.

+0

Ist dies eine Antwort? Scheint mehr wie ein Kommentar .. – scotty3785

Verwandte Themen