目标是从用户的段落中列出并进行迭代,以便我可以计算出多少个单词包含特殊字母“j,x,q,z”。
输入示例:
在地下的一个洞里,住着一个霍比特人。它不是一个肮脏,肮脏,潮湿的小孔,里面充满蠕虫的末端和难闻的气味,也没有一个干燥,裸露的沙质孔,里面没有东西可坐下或进食;这是一个霍比特洞,这意味着舒适。
输出示例:
1个单词,稀有字符
我已经开始在代码中将用户的段落分成一个列表,但是我很难遍历该列表并查找每个特殊字母的实例。
这是我到目前为止的内容:
def rareChar(words):
rareWords = 0
rareChars = ['j', 'x', 'q', 'z']
for astring in words:
wds = words.split()
for char in wds:
if char in rareChars:
rareWords = rareWords + 1
return rareWords
def CoolPara(words):
print(rareChar(words), 'word(s) with a rare character')
# DO NOT CHANGE CODE BELOW
print(CoolPara(input("Enter: ")))
如果使用示例输入运行,则会得到输出“0个单词(带一个稀有字符)”。我该如何解决这个问题,以便获得预期的输出。任何帮助将不胜感激,因为我还是编码的新手
还有一个简短的注意事项:我只允许使用split()和Len()的方法/函数
最佳答案
也许这是一个向您介绍一些python功能的机会:
from typing import List
def rare_char(sentence: str, rare_chars: List[str]=["j", "x", "q", "z"]) -> List[str]:
return [word for word in sentence.split() if
any(char in word for char in rare_chars)]
def cool_para(sentence: str) -> str:
return f"{len(rare_char(sentence))} word(s) with rare characters"
该答案使用:
str
函数中返回了cool_para
,因为# DO NOT CHANGE CODE BELOW
注释下面的代码正在打印函数调用的结果。 关于python - 在列表中查找特定字符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58614355/