2017-08-18 11 views
0

Python 3を使用複数の変数を1つのリストから返す

これは非常に基本的なことです。このコードは、提供された国コードから国を返すために使用されます。基本的には、与えられた入力の最初の2文字が必要です。

私がこれまで働いてきたコードのみとなり出力最初の「国コード」

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

'return'は' for'ループの最初の繰り返しで実行されます。それで、あなたが望む他のアウトプットを決して見ることができないのです。 – pstatix

答えて

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")) 

出力:

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

基本的にあなたの方法は、その最初の値を返していましたsplitリスト。

分割リストを繰り返して、別のリストに各値を保存して戻す必要があります。

別のアプローチ:

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

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

非常に簡単にこのライナー1へ:

>>> 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'] 
>>> 

何あなたのプログラムがforループを実行してやっていたが、returnが呼び出されたときに、それが機能を終了します。実行可能な発電機(つまりyieldを使用)を必要としていたように見えますが、必要以上に面倒なことがあります。

関連する問題