首页 > 解决方案 > Python:如何在句子的单词列表中找到一个字母并以原始大小写(大写/小写)返回这些单词

问题描述

我正在尝试创建一个 Python 函数,该函数接受一个句子,将其转换为一个列表,并确定给定字母是否出现在该列表中的任何单词中,无论字母大小写如何。然后我希望该函数仅返回具有该字母的那些单词的列表,每个单词的字母都在其原始大小写中。

我已经能够返回这些单词,但现在所有字母都是小写的,即使它们最初是大写的。如何在原始情况下返回带有字母的单词?

我写的:

def word_with(word, char):
    char_lower = char.lower()
    word_lower = word.lower()
    word_string = word_lower.split()
    word_with = [x for x in word_string if char_lower in x]
    return word_with

当我测试时:

word = "她在海边卖贝壳"
print(word_with(word, "s"))

输出是:

['她','卖','贝壳','海滨']

但我希望“她”有一个大写的“S”,就像它在原版中出现的那样。我该怎么做呢?谢谢。

标签: pythonlistcase

解决方案


您的不起作用,因为您在检查之前将单词小写。在检查它是否在单词中时执行此操作,如下所示:

def word_with(sent, letter):
    x = [word for word in sent.split() if letter in word.lower()]
    return x

推荐阅读