Python 在返回的字符串中只大写某些特定的单词?

Python 在返回的字符串中只大写某些特定的单词?,python,string,Python,String,在我的代码中,有一行返回字符串 return item.title().lower() item是一个对象,有一个标题,我们返回字符串标题,但都是小写的 我怎么能做这样的事情 返回项.title().lower() 但是如果标题中有单词(Maxine、Flora、Lindsey),请保持大写。 所有其他的单词都用小写字母 我可以使用if语句,但我不确定如何只大写特定的单词 像 你喜欢那样的工作吗?那么我可以返回什么呢?以下内容应该有效(考虑到没有出现第一个字符为小写的单词(例如maxine),

在我的代码中,有一行返回字符串

return item.title().lower()
item是一个对象,有一个标题,我们返回字符串标题,但都是小写的

我怎么能做这样的事情

返回项.title().lower() 但是如果标题中有单词(Maxine、Flora、Lindsey),请保持大写。 所有其他的单词都用小写字母

我可以使用if语句,但我不确定如何只大写特定的单词

你喜欢那样的工作吗?那么我可以返回什么呢?

以下内容应该有效(考虑到没有出现第一个字符为小写的单词(例如maxine),或者有,并且您希望它为大写):

例如:

item.title='My name is Maxine i LIVE IN Flora and I LOVE Lindsey'  
>>> format(item.title)
'my name is Maxine i live in Flora and i love Lindsey'

使用
if
语句对照要保留的内容列表检查单词是正确的。试着这样做:

def小写字母(单词,排除=[]):
#已处理单词列表
生词=[]
用文字表示:
如果排除中的word.lower():
#如果这个词在我们要排除的词列表中,不要转换
新词。附加(词)
其他:
new_words.append(word.lower())
返回新词
>>>小写字母(['TEST','WORDS','MEXICO'],['MEXICO'])
[‘测试’、‘单词’、‘墨西哥’]
这可以通过一种非常简单的Python ic方式完成,并具有列表理解功能:

def小写字母(单词,排除=[]):
返回[word.lower()如果word.lower()不在word中,则逐字逐句排除]
您可以使用以下功能:

names = ['Maxine', 'Flora', 'Lindsey']
if item.title() in names:
    return item.title()
else:
    return item.title.lower()

根据你自己的研究,到目前为止,你尝试了什么?你的尝试出了什么问题?请提供一个示例,以便我们通过使用
if
语句更好地理解您的困难,在该语句中您实现了上一段中刚刚描述的逻辑。嘿,伙计们,我添加了我尝试的内容,可能最简单的是在您执行操作时将整个字符串更改为小写,然后将你想要大写的特定单词改回原处。将小写字符串拆分为“单词”(使用
item.title().Split()
),有选择地将它们大写(使用
myword.capitalize()
),然后使用
join()
将它们重新串在一起。似乎您误解了
.title()
的用法。它对一个字符串执行
操作
;大写每个单词的第一个字母。然后,使用
.lower()
字符串转换为所有小写字母。因此,
.lower()
正在覆盖
.title()
。当我尝试您的列表理解方法时,我得到一个错误“Can not assign function to call”,您知道这意味着什么吗?请看,您是否正在尝试将函数
lowercase_some()
分配给某个对象?代码对我有用。嘿,我想这就像我想要的一样,但是当我的名字列表中有“lichtenstein夫人”时,它会将它从lichtenstein夫人转换为lichtenstein夫人,只保留mrs的大写字母,你知道为什么吗?这是因为代码只会将这些单词的第一个字符改为大写。您的示例Lichtenstein女士更难实施,因为有许多案例必须处理,特别是如果中间有空格,请添加一个解释,说明您为什么建议此答案
item.title='My name is Maxine i LIVE IN Flora and I LOVE Lindsey'  
>>> format(item.title)
'my name is Maxine i live in Flora and i love Lindsey'
names = ['Maxine', 'Flora', 'Lindsey']
if item.title() in names:
    return item.title()
else:
    return item.title.lower()