gpt4 book ai didi

python - 根据值使句子/单词复数

转载 作者:太空狗 更新时间:2023-10-30 02:52:19 24 4
gpt4 key购买 nike

我想知道是否有更好的或至少更具可读性/漂亮/pythonic 的方式来根据输入的数据使句子复数。

这是我现在的做法

ret = f'Done! {deleted} entr{"y was" if deleted == 1 else "ies were"} removed.'

我知道这行得通,但当我去阅读它时,感觉不太好。我考虑过制作函数或使用 dict-switch(这是我有点喜欢的东西),但也许有人知道更好的方法。

我尝试过的解决方案:

使用字典

plural = {1:'y was'}
ret = f'Done! {deleted} entr{plural.get(deleted, "ies were")} removed.'

使用函数

def plural(num: int):
return 'y was' if num == 1 else 'ies were'

使用 bool 运算符

ret = f'Done! {deleted} entr{deleted != 1 and "ies were" or "y was"} removed.'

这些真的是我现在能想到的唯一有意义的其他方式,我想要这个的原因也是因为我有多个地方需要使单词成为复数。问题是,我可能想在某些地方使用不同的措辞,并且不想重复自己的意思,将单词变成复数形式以便于阅读。

最佳答案

也许在这个单一的例子中(如果我们谈论的是几个要拒绝的字符串)那么这些方法就足够了。

但一般情况下,本地化 (L10N) 和国际化 (I12N) 最好由合适的库处理。

对于 python,我们有一个标准库 gettext可用于此目的。它实际上是 GNU gettext 的 python API这是一个很好的开始选择。有补充资源:

  1. Step-by-step guide如何本地化您的 Python 脚本。
  2. A more in-depth introduction to GNU gettext在 python 的上下文中。
  3. another one如果前一个不适合你。
  4. 最后,更复杂但更全面 python internationalization guide .

简而言之,L10N 和 I12N 不仅仅是复数...

关于python - 根据值使句子/单词复数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53589770/

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