【发布时间】:2018-02-01 01:07:00
【问题描述】:
我刚刚完成了 Python 课程,并且正在着手我的第一个项目,这是一个用于练习西班牙语动词及其变位的工具。该工具正在运行,但现在我想改进它。例如,目前处理数据比较困难(例如将过去时添加到动词 + 复杂的随机测验功能)。
然而,我偶然发现了几个问题,其中之一是: 如何添加新字典并根据原始输入为该字典命名?我认为这应该不难,但经过大量搜索后仍未找到解决方案。
我有两个文件:一个包含代码和一个 .txt 文件,其中包含作为字典的所有动词的单独行。下面你会看到我添加新动词并将其附加到 .txt 文件的函数。
我的 .txt 文件中的一行示例:
to talk = {'present': ['hablo', 'hablas', ... ]}
当前代码:
def add_verb():
verb = {}
name = (raw_input("Verb in Dutch: "))
tense = (raw_input("Verb tense: "))
conjugations = []
conjugations.append(raw_input("Yo: "))
conjugations.append(raw_input("Tú: "))
verb_dict[tense] = conjugations
with open("verbs.txt", "a") as abc:
abc.write("%s = {'%s': %s}\n" % (name, tense, conjugations))
基本上,我想要的是这样的:
abc.write(dictionary)
因此,我希望将字典按原样写入文件,但使用原始输入给出的字典名称。
我目前也在考虑使用 Verb 类,因为我认为这会使该工具变得更好,但后来我偶然发现了完全相同的问题(如何为新类实例指定由 raw 给出的名称输入?)。
附:如果您看到其他我应该改进的地方,请随时提及。
【问题讨论】:
-
不要将变量命名为
dict、list或type,它们会隐藏python 的内置类型和方法。听起来您只需要一个嵌套字典。 -
是的,我更改了这篇文章的名称(在我的原始代码中,它们是荷兰语)
-
即使它们是荷兰语,“列表”也不是很有指示性,最好将其命名为与其实际表示的内容相对应的名称,这将使您的代码很多更清晰。除非我误解了,并且在您的英文翻译中,您还更改了名称的语义。另外,海海:)
-
嗨@IzaakvanDongen!谢谢,我担心它会使它复杂化而不是让它变得更容易,但我明白为什么它没有。我编辑了帖子!
标签: python python-2.7 dictionary