【发布时间】:2021-11-18 12:18:34
【问题描述】:
为了好玩,我正在尝试在 python 中“重新创建”str.split() 方法。
def ourveryownstrip(string, character):
newString = [n for n in string if n != character]
return newString
print("The string is", ourveryownstrip(input("Enter a string.`n"), input("enter character to remove`n")))
它的工作方式是我创建了一个传入两个参数的函数:1)第一个是提供的字符串,2)第二个是人们想要远程/空白的字符串或字符从字符串。然后我使用列表推导通过条件语句将“修改后的”字符串存储为新列表。然后它将修改后的字符串作为列表返回。
然而,输出将整个内容作为一个数组返回,字符串中的每个字符都用逗号分隔。
预期输出:
Boeing 747 Boeing 787
enter character to removeBoeing
The string is ['B', 'o', 'e', 'i', 'n', 'g', ' ', '7', '4', '7', ' ', 'B', 'o', 'e', 'i', 'n', 'g', ' ', '7', '8', '7']
我该如何解决这个问题?
【问题讨论】:
-
嗯,是的……列表推导生成列表……您可能想
''.join(...)将该列表重新转换为字符串? -
问题是“波音”是一个字符串 - 不是一个字符
-
@deceze 我真的很困惑。首先,当我输入任何字符串时,比如让我们说
helicopters到“美国空军有很多直升机”。我实际上只是取回了原始字符串。它只是行不通。它以列表形式返回原始字符串。如果我不能使用列表理解,我该如何编写代码来创建一个字符串变量,并且循环获取每个单独的字符并将其存储到新字符串中,然后返回它。帮助 -
你的问题是矛盾的。您似乎想重写 replace 函数而不是 split。如果是这种情况,那么您可以使用 index 来识别替换的位置,然后对字符串进行切片以将其删除
-
@Shah Jacob 这不是 split 方法所做的。 Split 接受一个字符输入并根据该字符将字符串拆分为一个列表。虽然是的,它确实从字符串中删除了字符,但它的主要用途是创建一个列表。您要做的是
replace()将替换初始字符串中子字符串的所有实例,当您将子字符串替换为像string.replace('Boeing','')这样的空字符串时,它会删除所有出现的“波音”初始字符串。