【问题标题】:Stuck with writing a function that returns a large list of nouns in a dictionary form (python)坚持编写一个以字典形式返回大量名词的函数(python)
【发布时间】:2021-01-20 00:38:38
【问题描述】:

声明:如果我没有明确表达我的问题,我深表歉意,我并不是在寻找某人为我编写代码,但请指导我如何将其分解为更小的任务(这将是一个很好的机会了解我是否知道如何分解它)。

我有一个充满名词的文件(est 500)。我的目标是复数文件中的每个单词。根据单词的结尾,有几种方法可以使单词复数。要么以's'、'es'、'ies'等结尾..

我打算写的函数有一个参数。

def pluralize (word)

和输出:

{'plural': word_in_plural, 'status' : x}

word_in_plural 是输入参数 word 的复数形式,而 x 是可以具有以下值之一的字符串:' empty_string''proper_noun''already_in_plural''success'

真的不知道如何解决这个问题,过去 3 个小时我一直在看讲座视频,但它让我无处可去。

我不想在这些问题上浪费您的时间,并希望遵循 SOF 的礼仪。如果我问错了,我提前道歉。

如果有人能指出正确的方向,我将不胜感激。一切顺利。

【问题讨论】:

  • 你希望使用什么规则来决定使用什么复数结尾?
  • 假设一个单词是复数,如果它以's'结尾。另外,强烈假设英语中没有以“s”结尾的单数词。 “请注意,您的函数应首先将任何大写输入转换为小写,因为列表中的专有名词都是小写。但是,输出字典中的值将保留原始大写”。至于复数规则:如果单词以元音结尾,加's'。如果以 'y' 结尾并且前面是辅音,则删除最后一个字母和加法。如果以 'f' 结尾,则擦除最后一个 Conso。并添加“ves”。
  • 如果以'sc'/'ch'/'z'结尾,如果以上都不适用,则添加'-es',只需添加's'。在这些规则之后,输出应该如上所述。这里发生了很多事情,我淹死了。
  • 我需要导入特定的模块吗?

标签: python dictionary


【解决方案1】:

看起来你想要 python 模式库:

import pattern.en

print (pattern.en.pluralize("house"))

输出:

houses

安装:

pip3 install pattern

【讨论】:

    【解决方案2】:

    我会尝试将问题分解为多个部分。我觉得这有助于我思考和简化更复杂的代码,并且让我可以随时测试它。

    首先是函数的主要组织,如果复数只是每次都加s那么你可能可以做这样的事情。

    def pluralize(word):
      output = dict()
      output["plural"] = word + "s" #replace this line later with better logic
      output["status"] = "success" #replace this line later with better logic
      return output
    

    要根据单词的结尾进行复数,您可以将单词的结尾与您已经定义的另一个字符串进行比较。如果语句可以正常工作

    if word[-1] in {'a','e','i','o','u'}:
      output["plural"] = word + 's'
    elif word[-1] == 's':
      output["plural"] = word + "es"
    #add more conditions here as needed
    else:
      output["plural"] = word + 's'
    

    可以根据需要添加额外的 if 语句。

    对于状态,您可以在其中添加 if、elif、else 以检查您需要的内容。例如

    if word == '':
      output["status"] = "empty_string"
    #add other conditions as needed
    

    我希望这能给你一些帮助。

    Python 还要求缩进行和制表符与空格不同。

    要在 python 中使字符串小写,您可以使用word.lower()

    祝你申请顺利。

    【讨论】:

      猜你喜欢
      • 2019-11-30
      • 2018-12-17
      • 1970-01-01
      • 2019-10-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-23
      相关资源
      最近更新 更多