gpt4 book ai didi

python - 在列表中查找特定字符

转载 作者:行者123 更新时间:2023-12-04 02:20:26 24 4
gpt4 key购买 nike

目标是从用户的段落中创建一个列表并进行迭代,以便我可以计算出有多少单词包含特殊字母“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"

这个答案使用:
  • typing ,它可以被第三方工具使用,例如类型检查器、IDE、linter,但更重要的是让其他可能正在阅读您代码的人清楚您的意图。
  • default arguments , 而不是在函数内部对它们进行硬编码。记录您的函数非常重要,这样用户就不会对结果感到惊讶(请参阅 Principle of Least Astonishment )。当然还有其他方法可以记录您的代码(请参阅 docstrings )和设计该界面的其他方法(例如可以是 class),但这只是为了说明这一点。
  • List comprehensions ,它可以让你的代码更具可读性 declarative instead of imperative .很难确定命令式算法背后的意图。
  • string interpolation ,根据我的经验,它比连接更不容易出错。
  • 我用了 pep8命名函数的风格指南,这是python世界中最常见的约定。
  • 最后,我没有打印,而是返回了 strcool_para函数因为下面的代码# DO NOT CHANGE CODE BELOW注释正在打印函数调用的结果。
  • 关于python - 在列表中查找特定字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58614355/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com