3 回答

TA貢獻(xiàn)1827條經(jīng)驗 獲得超9個贊
由于prices
參數(shù)中的每個字符串都具有形式'[country_code]$[number]'
,因此您可以將每個字符串拆分'$'
為第一部分。
以下是如何執(zhí)行此操作的示例:
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
本身的內(nèi)置值。

TA貢獻(xiàn)1719條經(jīng)驗 獲得超6個贊
您的代碼有多個問題,您必須修復(fù)所有問題才能使其正常工作:
def get_country_codes(prices):
prices = ""
無論您的來電者傳遞了什么價值,您都將其拋棄并替換為""。您不想這樣做,因此只需刪除最后一行即可。
list = prices.split()
您真的不應(yīng)該調(diào)用此列表list。另外,split由于沒有在空格上分割參數(shù),因此您得到的可能不是您想要的:
>>> "US$200, CA$80, GA$500".split()
['US$200,', 'CA$80,', 'GA$500']
我想您可以擺脫那些逗號,因為您只是將它們?nèi)拥袅?。但最好使用實際的分隔符進(jìn)行拆分', '。因此,讓我們更改該行:
prices = prices.split(", ")
list.remove("$")
這將刪除列表中所有與string相等的值"$"。沒有這樣的值,所以它什么也不做。
更一般而言,您不想丟棄列表中的任何字符串。相反,您想用在處被截斷的字符串替換字符串$。因此,您需要一個循環(huán):
countries = []
for price in prices:
country, dollar, price = price.partition('$')
countries.append(country)
如果您熟悉列表推導(dǎo),可以將其重寫為單行代碼:
countries = [price.partition('$')[0] for price in prices]
"".join(list)
這只會創(chuàng)建一個新字符串,然后將其丟棄。如果要使用它,則必須將其分配給某些對象,如下所示:
result = "".join(countries)
但是……您真的要在join這里做什么嗎?聽起來您希望結(jié)果是一個字符串列表['US', 'CA', 'GA'],而不是一個大字符串'USCAGA',對吧?因此,請擺脫這條線。
return list
只需將變量名更改為countries,就可以完成。

TA貢獻(xiàn)1813條經(jīng)驗 獲得超2個贊
由于數(shù)據(jù)的結(jié)構(gòu)是前兩個字符是縣區(qū)代碼,因此可以使用簡單的字符串切片。
def get_country_codes(prices): return [p[:2] for p in prices]
添加回答
舉報