Python:如何在句子中查找字母';s单词列表,并以原始大小写返回这些单词(大写/小写)

Python:如何在句子中查找字母';s单词列表,并以原始大小写返回这些单词(大写/小写),python,list,case,Python,List,Case,我试图创建一个Python函数,该函数接受一个句子,将其转换为一个列表,并确定给定的字母是否出现在该列表中的任何单词中,而不考虑字母大小写。我希望函数只返回一个包含该字母的单词列表,每个单词的字母都在原来的大小写中 我已经能够返回这些单词,但是现在所有字母都是小写的,即使它们原来是大写的。我如何在原样中返回带字母的单词 我写的是: def word_with(word, char): char_lower = char.lower() word_lower = word.lowe

我试图创建一个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=“她在海边卖贝壳”
打印(带“s”字的单词)

输出为:

[“她”、“卖”、“贝壳”、“海滨”]

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

用这个:

[x for x in word_string if char_lower in x.lower()]


使用以下命令:

[x for x in word_string if char_lower in x.lower()]



不要对字符串执行任何强制转换,请在生成器中使用正则表达式,而不要在关键字中使用

def word_with(word, char):
    return [x for x in word.split() if re.search(char, x, re.IGNORECASE)]

应该做到这一点。

不要对字符串执行任何强制转换,在生成器中使用正则表达式,而不是在
关键字中使用

def word_with(word, char):
    return [x for x in word.split() if re.search(char, x, re.IGNORECASE)]

应该能做到。

在使用小写字母并根据列表中的索引返回这些单词之前,我会尝试拆分

def word_with(word,char):
char\u lower=char.lower()
原始拆分=word.split() word\u lower=word.lower()
word\u string=word\u lower.split()
word_with=[x代表范围内的x(len(word_字符串)),如果char_低于word_字符串[i]]
返回([original_split[i]for i in word_with])
在使用小写字母并根据列表中的索引返回这些单词之前,我会尝试拆分

def word_with(word,char):
char\u lower=char.lower()
原始拆分=word.split() word\u lower=word.lower()
word\u string=word\u lower.split()
word_with=[x代表范围内的x(len(word_字符串)),如果char_低于word_字符串[i]]
返回([original_split[i]for i in word_with])
如果将
.lower()
调用移动到列表理解的条件部分,则可以返回原始单词

大概是这样的:

def words_和(s,char):
char\u lower=char.lower()
#获取单个单词
words=s.split()
#返回所有包含字符的单词
return[如果字符在word.lower()中较低,则逐字逐句返回]

如果将
.lower()
调用移动到列表理解的条件部分,则可以返回原始单词

大概是这样的:

def words_和(s,char):
char\u lower=char.lower()
#获取单个单词
words=s.split()
#返回所有包含字符的单词
return[如果字符在word.lower()中较低,则逐字逐句返回]

我们可以使用正则表达式: 请检查您是否使用此代码获得了所需的输出

import re
def word_with(word, char):
    word_string = word.split()
    print(word_string)
    word_with = [x for x in word_string if re.search(r'^[s]',x,re.I)]
    return(word_with)

word = "She sells seashells by the seashore"
print(word_with(word,'s'))

我们可以使用正则表达式执行此操作: 请检查您是否使用此代码获得了所需的输出

import re
def word_with(word, char):
    word_string = word.split()
    print(word_string)
    word_with = [x for x in word_string if re.search(r'^[s]',x,re.I)]
    return(word_with)

word = "She sells seashells by the seashore"
print(word_with(word,'s'))

这将返回与字符匹配的字母中的原始单词

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

这将返回与字符匹配的字母中的原始单词

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

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

def word_随附(已发送,信函):
x=[sent.split()中的逐字逐句,如果word.lower()中有字母]
返回x

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

def word_随附(已发送,信函):
x=[sent.split()中的逐字逐句,如果word.lower()中有字母]
返回x

他不想把每场比赛都资本化。。。他只想要原始单词在原始未修改输入中的表示形式。他不希望每个匹配都大写。。。他只想要原始单词在原始未修改输入中的表示形式。谢谢。我还没有使用正则表达式的经验。我把“进口re”放在第一行,你的建议很有效。谢谢。我还没有使用正则表达式的经验。我把“进口re”放在第一行,你的建议很有效。谢谢。我减去了行“print(word_string)”,它给出了我想要的输出。谢谢。我减去了行“print(word_string)”,它给出了我想要的输出。