【发布时间】:2020-07-18 17:38:25
【问题描述】:
希望你一切顺利:)
我最近在代码学院网站学习python,他们给了我一个关于zip()和append()的例子。
last_semester_gradebook = [("politics", 80), ("latin", 96), ("dance", 97), ("architecture", 65)]
subjects = ["physics", "calculus", "poetry", "history"]
grades = [98, 97, 85, 88]
subjects.append("computer science")
grades.append(100)
gradebook = zip(subjects, grades)
#This code is the problem
gradebook.append(("visual arts", 93))
print(list(gradebook))
这是我编写的代码,但它给了我一个错误。
Traceback (most recent call last):
File "script.py", line 9, in <module>
gradebook.append(("visual arts", 93))
AttributeError: 'zip' object has no attribute 'append'
对于正常情况,我会先搜索错误,但问题是,我编写的代码与他们作为解决方案提供给我的代码完全相同。 这就是为什么我很困惑并在这里问的原因。 是网站的错误还是解决方法的错误?
感谢您的关注
【问题讨论】:
-
学习搜索错误消息。 google 上的第一个结果.. 无论如何,它与 Python 2 与 3 的差异有关。 zip 曾经返回一个列表,现在它没有。 append 是列表的成员。因此 zip 的结果可以转换为一个列表来匹配 Python 2 的行为,如 list(zip(..)),或者可以使用不同的方法或连接。
-
我认为你应该将此示例报告给代码学院。看起来已经努力将它从 python 2 移植到 3,但是移植还没有完成。
标签: python list append zip attribution