【问题标题】:python 2.7.8 delimiter.how to del a a letter of stringpython 2.7.8 delimiter.how 删除一个字符串的字母
【发布时间】:2014-10-29 13:25:13
【问题描述】:
def split(string,x):
    if string == "":
        return ""
    if string[0] == x :
        return split(string[1:],x)
    return string[0]+[split(string[1:],x)]

我想给这个函数一个像“ballooolam”和“l”这样的字符串,我希望这个函数给我 ["ba","ooo","am"] 3 天我正在考虑它

【问题讨论】:

  • 为什么不使用 string.split('l')????或者这是一个练习
  • 虽然想这样解决问题也差不多
  • 对不起,我不明白你的意思。

标签: python-2.7 delimiter


【解决方案1】:

在 python 中拆分字符的正确方法是使用 split 内置函数。它会比你在 python 中本地实现的任何东西都快很多,因为它是一个已编译的 C 扩展,此时所有内置函数都是:

lst =  "ballooolam".split("l")

但是,正如 question 中所讨论的,这可能不会完全达到您的预期。 split 当存在长度为零的标记时,在列表中留下空字符串; IE。如果分隔符位于字符串中的第一个/最后一个位置,或者两个分隔符彼此相邻。这样word = 'l'.join(lst) 将返回原始值;如果没有空字符串,您将返回 'balooolam' 而不是 'ballooolam'。如果您想删除这些空字符串,您可以通过列表理解轻松完成:

def splitter(string, x):
    return [token for token in string.split(x) if token]

if token 将拒绝任何“虚假”字符串,即空字符串。如果您还想从最终列表中排除仅包含空格的字符串,您可以稍作调整:

def splitter(string, x):
    return [token for token in string.split(x) if token.strip()]

strip() 从字符串中删除任何前导/尾随空格。在只有空格的字符串的情况下,这将导致一个空字符串,这将是虚假的。

【讨论】:

    猜你喜欢
    • 2014-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-19
    • 2021-06-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多