返回值的逗号

时间:2019-05-29 18:10:38

标签: python python-3.x

我知道所需的语法位于第一个函数中,但是我一生无法找到它的位置。

我试图删除逗号并在每个.split()中添加空格,这产生了不希望的返回值。

def get_country_codes(prices):
    price_list = prices.split(',')  
    results = ''
    for price in price_list:  
        results += price.split('$')[0]   
    return results

def main():
    prices = "US$40, AU$89, JP$200"
    price_result = get_country_codes(prices)
    print(price_result)

if __name__ == "__main__":
    main()

当前输出:

US AU JP

所需的输出:

US, AU, JP

3 个答案:

答案 0 :(得分:0)

使用列表而不是字符串来收集价格的国家/地区代码似乎可以使您受益。然后您可以稍后使用', '.join()

也许是这样的:

def get_country_codes(prices):
    country_code_list = []

    for price in prices.split(','):
        country_code = price.split('$')[0].strip()
        country_code_list.append(country_code)

    return country_code_list

if __name__ == '__main__':
    prices = "US$40, AU$89, JP$200"
    result_list = get_country_codes(prices)
    print(', '.join(result_list))

或者,如果您喜欢真正的短代码:

prices = "US$40, AU$89, JP$200"
print(
    ', '.join(
        price.split('$')[0].strip()
        for price in prices.split(',')))

答案 1 :(得分:0)

如果需要,也可以使用正则表达式。由于您知道国家/地区代码将仅是两个大写字母(A-Z),因此可以查找在美元符号前面的两个大写字母的匹配项。

def get_country_codes(prices):
    country_codes = re.findall(r'([A-Z]{2})\$', prices)
    return ', '.join(country_codes)

请参见regex demo here

答案 2 :(得分:0)

查看后续步骤:

您的字符串:

In [1]: prices = "US$40, AU$89, JP$200"                                              

分成逗号列表

In [2]: alist = prices.split(',')                                                    
In [3]: alist                                                                        
Out[3]: ['US$40', ' AU$89', ' JP$200']

在$

上拆分子字符串
In [4]: [price.split('$') for price in alist]                                        
Out[4]: [['US', '40'], [' AU', '89'], [' JP', '200']]

选择第一个元素:

In [5]: [price.split('$')[0] for price in alist]                                     
Out[5]: ['US', ' AU', ' JP']

您的+=照原样连接字符串;与join相同,并带有“”。请注意,子字符串仍然具有原始字符串的初始空白。

In [6]: ''.join([price.split('$')[0] for price in alist])                            
Out[6]: 'US AU JP'

加入逗号:

In [7]: ','.join([price.split('$')[0] for price in alist])                           
Out[7]: 'US, AU, JP'

join是将字符串列表之间使用特定定界符进行连接的最简单方法,实际上是反转split。循环中的+=较难使用,因为它倾向于在开头或结尾添加一个额外的定界符。