2017-08-18 3 views
0

Verwenden von Python 3Zurückgeben mehrerer Variablen aus einer einzigen Liste

Dies ist sehr einfach, ich bin mir sicher. Der Code wird verwendet, um das Land aus dem angegebenen Ländercode zurückzugeben. Im Wesentlichen brauche ich die ersten zwei Buchstaben der gegebenen Eingabe.

Der Code, den ich bisher gearbeitet habe, wird nur dann ausgegeben, der erste "Ländercode"

def get_country_codes(prices): 
    c = prices.split(',') 
    for char in c: 
     return char[:2] 


print(get_country_codes("NZ$300, KR$1200, DK$5")) 

output: 
    NZ 
Wanted output: 
    NZ, KR, DK 
+0

Ihre 'return' wird in der ersten Iteration der' for' Schleife ausgeführt. Deshalb sehen Sie nie die anderen Ausgänge, die Sie wünschen. – pstatix

Antwort

0
def get_country_codes(prices): 
    values = [] 
    price_codes = prices.split(',') 
    for price_code in price_codes: 
     values.append(price_code.strip()[0:2]) 

    return values # output: ['NZ', 'KR', 'DK'] 

    return ', '.join(values) # output: NZ, KR, DK 

print(get_country_codes("NZ$300, KR$1200, DK$5")) 

Ausgang:

['NZ', 'KR', 'DK'] 

im Grunde Ihre Methode wurde den ersten Wert von der Rückkehr split Liste.

Sie müssen auf dieser Aufteilungsliste iterieren und jeden Wert in einer anderen Liste speichern und diesen Wert zurückgeben.

Ein anderer Ansatz:

country_price_values = "NZ$300, KR$1200, DK$5" 

country_codes = [val.strip()[0:2] for val in country_price_values.split(',')] 
0

Sehr einfach zu einzeiler diese:

>>> def get_country_codes(prices): 
    return [cc.strip()[:2] for cc in prices.split(',')] 

>>> print(get_country_codes("NZ$300, KR$1200, DK$5")) 
['NZ', 'KR', 'DK'] 
>>> 

Was Ihr Programm tat, war die for Schleife ausgeführt wird, aber wenn return aufgerufen wird, beendet sie die Funktion; Ihre Implementierung sah so aus, als ob Sie einen Generator (d. h. yield) wollten, der machbar ist, aber wahrscheinlich mühsamer als nötig.

Verwandte Themen