Python:从字符串中删除字符,然后将其返回

例如,给定一个字符串列表prices = ["US$200", "CA$80", "GA$500"],我试图仅返回["US", "CA", "GA"]。


这是我的代码-我在做什么错?


def get_country_codes(prices):

    prices = ""

    list = prices.split()

    list.remove("$")

    "".join(list)

    return list


函数式编程
浏览 211回答 3
3回答

素胚勾勒不出你

由于prices参数中的每个字符串都具有形式'[country_code]$[number]',因此您可以将每个字符串拆分'$'为第一部分。以下是如何执行此操作的示例:def get_country_codes(prices):     return [p.split('$')[0] for p in prices]因此get_country_codes(['US$200', 'CA$80', 'GA$500'])返回['US', 'CA', 'GA']。另外请注意,我建议不要命名变量,list因为它会覆盖list类型list本身的内置值。

慕侠2389804

您的代码有多个问题,您必须修复所有问题才能使其正常工作:def get_country_codes(prices):    prices = ""无论您的来电者传递了什么价值,您都将其抛弃并替换为""。您不想这样做,因此只需删除最后一行即可。    list = prices.split()您真的不应该调用此列表list。另外,split由于没有在空格上分割参数,因此您得到的可能不是您想要的:>>> "US$200, CA$80, GA$500".split()['US$200,', 'CA$80,', 'GA$500']我想您可以摆脱那些逗号,因为您只是将它们扔掉了。但最好使用实际的分隔符进行拆分', '。因此,让我们更改该行:    prices = prices.split(", ")    list.remove("$")这将删除列表中所有与string相等的值"$"。没有这样的值,所以它什么也不做。更一般而言,您不想丢弃列表中的任何字符串。相反,您想用在处被截断的字符串替换字符串$。因此,您需要一个循环:    countries = []    for price in prices:        country, dollar, price = price.partition('$')        countries.append(country)如果您熟悉列表推导,可以将其重写为单行代码:    countries = [price.partition('$')[0] for price in prices]    "".join(list)这只会创建一个新字符串,然后将其丢弃。如果要使用它,则必须将其分配给某些对象,如下所示:    result = "".join(countries)但是……您真的要在join这里做什么吗?听起来您希望结果是一个字符串列表['US', 'CA', 'GA'],而不是一个大字符串'USCAGA',对吧?因此,请摆脱这条线。    return list只需将变量名更改为countries,就可以完成。

慕姐8265434

由于数据的结构是前两个字符是县区代码,因此可以使用简单的字符串切片。def get_country_codes(prices):     return [p[:2] for p in prices]
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python