2 回答
TA贡献1789条经验 获得超10个赞
每次调用该函数时,您都会创建新的空列表。该函数应将列表作为参数并修改它们。
def alist(wlist, dlist):
wele = input("Enter a word: ")
dele = input("Enter a definition: ")
wlist.append(wele)
dlist.append(dele)
word_list = []
def_list = []
word_count = int(input("How many words are you defining? "))
for _ in range(word_count):
alist(word_list, def_list)
print("Words' List: ", word_list, "\nDefinitions' List: ", def_list)
设置列表参数允许您拥有多个单词列表,例如
spanish_words = []
spanish_defs = []
alist(spanish_words, spanish_defs)
然而,将相关数据保存在单独的列表中通常是糟糕的设计,您必须保持同步。最好使用单个字典或元组列表,这样所有相关项(例如单词及其定义)都放在一起。
TA贡献1865条经验 获得超7个赞
当您附加到列表时,您将其分配给新变量 x 和 y,但您永远不会对这些变量执行任何操作。wor并且def永远不会改变。实际上,您不必分配append()给新变量,它会就地发生。
如果您希望两个列表在每次调用函数时始终保留它们所包含内容的内存,那么您应该在函数范围之外定义它们,否则每次调用函数时都会将它们重新启动为空列表。
l1 = []
l2 = []
def alist():
wele = str(input("Enter a word: "))
dele = str(input("Enter a definition: "))
l1.appnd(wele)
l2.append(dele)
print("Words' List: ", l1, "\nDefinitions' List: ", l2)
添加回答
举报