3 回答
TA贡献1856条经验 获得超5个赞
您当前的版本失败,因为字符串在创建后无法修改(请参阅注释);相反,执行以下操作:
amended_str = normalize_str(orig_str)
您想要的缩短版本是:
def normalize_str(in_str):
return in_str.replace(' ', '').replace('-', '')
# Or
normalize_str = lambda s: s.replace(' ', '').replace('-', '')
注意:您无法修改作为参数传递的字符串,因为字符串是不可变的 - 这意味着一旦创建,它们就无法修改。
TA贡献1854条经验 获得超8个赞
字符串是不可变的对象,这意味着在Python中,函数外部的原始字符串不能被修改。因此,您需要显式返回修改后的字符串。
def normalise_str(old_string):
return old_str.replace(' ','').replace('-', '')
orig_str = "foo - bar"
amended_str = normalise_str(old_string)
print(amended_str) # Should print foobar
TA贡献1810条经验 获得超5个赞
您需要输入旧字符串,进行更改,然后将最终的临时字符串返回给变量。
#This is what my function looks like
def normalise_str(old_string): #def func
temp_string = old_string.replace(" ", "") #rm whitespace
temp_string = temp_string.replace("-", "") #rm hyphens
return temp_string #assign newly modified str to var
#This is what I would like to achieve
orig_str = "foo - bar"
s = normalise_str(orig_str)
print(s) #I would like this to return "foobar"
添加回答
举报