【发布时间】:2015-03-16 06:19:46
【问题描述】:
编写并测试 Python 函数 leppard 以遍历 zoo_list 并删除不在 zoo_dictionary 中的任何项目。使用以下元组作为字典:
(“狮子”、“老虎”、“熊”、“chupacabra”、“长颈鹿”、“树懒”)
n = int(input("Enter the number of animals: "))
zoo_list = []
zoo_dictionary = ( "lion", "tiger", "bear", "chupacabra", "giraffe", "sloth" )
for i in range(n):
lists = input("Enter the names of each animal: ")
zoo_list.append(lists)
for i in range(n-1):
if zoo_list[i] not in zoo_dictionary:
zoo_list1 = zoo_list.pop(i)
打印(动物园列表)
这是我的代码,但是当我输入“cat”“dog”“lion”“bear”“monkey”时 我的列表显示 ["dog","lion","bear"] 有什么理由吗?请,谢谢你:)
【问题讨论】:
-
您有以下解决方案,但获取它们的方法是例如在调试器中检查
zoo_list和zoo_list1的值。这应该给你一个提示是怎么回事。也就是说,“字典”已经是错误的类型,它应该是一个集合:zoo = {'dingo', 'mouse', 'hedgehog'}。 -
这类问题确实适合使用列表推导(或生成器表达式)来解决。在这种情况下,
zoo_list中不在zoo_dictionary中的元素列表是[x for x in zoo_list if x not in zoo_dictionary]。我认为它的美妙之处(除了简洁之外)几乎读起来像英语。