当前位置: 首页 > 面试题库 >

标题中的字符串带有例外

东郭展
2023-03-14
问题内容

有没有在Python的标准方式标题字符的字符串(即词开始大写字符,所有剩余的套管字符有小写),但像离开的文章andinof小写?


问题答案:

这有一些问题。如果使用拆分和合并,则某些空格字符将被忽略。内置的大写和标题方法不会忽略空格。

>>> 'There     is a way'.title()
'There     Is A Way'

如果句子以文章开头,则不希望标题的第一个单词小写。

请记住以下几点:

import re 
def title_except(s, exceptions):
    word_list = re.split(' ', s)       # re.split behaves as expected
    final = [word_list[0].capitalize()]
    for word in word_list[1:]:
        final.append(word if word in exceptions else word.capitalize())
    return " ".join(final)

articles = ['a', 'an', 'of', 'the', 'is']
print title_except('there is a    way', articles)
# There is a    Way
print title_except('a whim   of an elephant', articles)
# A Whim   of an Elephant


 类似资料:
  • 问题内容: 我试图理解字符串比较与字符串比较的输出。需要明确的是,我拥有使用==和equals比较两个字符串的类。我试图将==和equals()的输出合并为字符串。equals()的输出会连续显示,但==的输出不会 连续显示。使用Java的装箱功能,将与字符串连接的布尔值联系起来。equals和==都返回布尔值。那么为什么会有这种差异呢?有人可以解释吗? 输出 更新:答案 如果不使用s1 == s

  • 我正在尝试从Java文本文件中读取一行。我得到一个异常。 这是文本文件中的行: 我需要用“#”拆分,这部分起作用了。当我试图访问位置1处的元素时,Java抛出异常。我想这是因为名字和姓氏之间有空格,因为当我显示的是“Chiquita”,而不是“Chiquita Sanford”。 当第一个数组索引中有多个单词时,Java对拆分是否有一些限制。

  • 问题内容: 我有这个: JSONLint表示这是完全有效的json。但是执行时出现错误。 但是,如果我将代码更改为: (请注意双反斜杠) 它可以工作,但是现在JSONLint表示。 有人可以帮助您了解这种行为吗? 问题答案: 有线格式和您必须在代码中编写的格式之间是有区别的。当您在代码中声明此代码时,您需要在文字中使用双-\,以便字符串获得一个反斜杠(否则,它将\\解释为一个转义序列,仅声明一个“

  • 具有以下json片段: 这是我的对象映射器配置 附加注意:Pojo类是使用jsonschema2pojo gradle插件生成的,并且基于json模式

  • 问题内容: 我试图找出python仅实例化一次的整数(似乎为-6到256),并且在此过程中偶然发现某些字符串行为,我看不到模式。有时,以不同方式创建的相等字符串共享相同的字符串id,有时不是。这段代码: 印刷品: 我什至没有看到这种模式-除了前四个没有显式的函数调用的事实之外-但肯定不能这样,因为例如C语言中的“ ”表示对 add 的函数调用。我特别不明白为什么C和G不同,因为这意味着加法的组成部

  • 我不明白。我使用了在互联网上找到的所有替换方法,包括我能找到的所有堆栈溢出。我甚至试过\u0024!发生了什么?