微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

忽略python中的空格

如何解决忽略python中的空格

我需要这段代码来忽略(而不是替换)空格。基本上,它应该只大写字母表中的每个第二个字母。

def spaces(test_space):
    text = (str.lower,str.upper)
    return ''.join(text[i%2](x) for i,x in enumerate(test_space))

print(spaces('Ignore spaces and other characters'))
print(spaces('Ignore spaces and 3rd characters!'))

输出

iGnorE SpAcEs aNd oThEr cHaraCtErS

iGnorE SpAcEs aNd 3Rd cHaraCtErS

解决方法

这听起来像是家庭作业,所以我只会提供建议和资源,而不是完整的代码:

一种方法是:

  1. 将每个空格替换为 2 个无法出现在文本中的字符。例如使用“$$”。这可以通过 python 的 replace 函数轻松完成。我们用 2 个字符替换一个空格,因为每个空格都将索引“甩掉”一个(mod 2),因此通过用两个字符替换每个空格可以纠正问题(因为 2(mod 2)= 0)。
  2. 使用当前程序将所有其他字符大写
  3. 用空格替换每次出现的“$$”。
  4. 使用您保存的索引将空格放回

输出:iGnOrE sPaCeS aNd 3rD cHaRaCtErS!

或者,您可以遍历字符串(使用循环),保留位置计数器,但使用 regex 忽略计数器中的所有非字母字符。您也可以通过 list comprehension 简洁地完成此操作,尽管阅读起来可能会更加混乱。

,
def spaces(test_space):
    return " ".join(
        [
            "".join(
                char.upper() if i % 2 == 1 else char.lower()
                for i,char in enumerate(word)
            )
            for word in test_space.split()
        ]
    )

输出

iGnOrE sPaCeS aNd oThEr cHaRaCtErS

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。