从单个列表返回多个变量

时间:2017-08-18 03:02:46

标签: python list

使用Python 3

这是非常基本的我敢肯定。该代码用于从提供的国家/地区代码返回国家/地区。基本上我需要输入的前两个字母。

我到目前为止所使用的代码只输出第一个“国家代码”

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

2 个答案:

答案 0 :(得分: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(',')]

答案 1 :(得分:0)

这很简单:

>>> 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),但可能比这更麻烦。