python: append() 到 zip() 问题。 'zip' 对象没有属性 'append'
python: append() into zip() problem. 'zip' object has no attribute 'append'
祝你一切顺利:)
我最近在代码学院网站上学习 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'
正常情况下我会先查找错误,但问题是,我写的代码和他们给我的解决方案的代码完全一样。
这就是为什么我很困惑并在这里问的原因。
是网站错误还是解决方案不对?
感谢您的关注
因为gradebook
是一个zip
对象。
您可能需要使用
gradebook = list(zip(subjects, grades))
问题是 zip
是迭代器,而不是序列。我怀疑您有一些旧的或未经测试的代码,与当前的 Python 版本不兼容。您 zip
结果可用作 for
语句的目标,但没有 append
属性 -- 它是一种特殊类型的函数。
转换很简单:早点用它做一个列表:
gradebook = lsit(zip(subjects, grades))
#This code is the problem
gradebook.append(("visual arts", 93))
print(gradebook)
您应该将 zip 更改为列表:
gradebook = list(gradebook)
gradebook.append(("visual arts", 93))
这里是“gradebook = zip(subjects, grades)”,你正在创建一个 zip 实例,但是为了附加一些东西,你需要使用这样的列表函数将它变成一个列表
成绩簿=列表(zip(科目,成绩))
祝你一切顺利:)
我最近在代码学院网站上学习 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'
正常情况下我会先查找错误,但问题是,我写的代码和他们给我的解决方案的代码完全一样。 这就是为什么我很困惑并在这里问的原因。 是网站错误还是解决方案不对?
感谢您的关注
因为gradebook
是一个zip
对象。
您可能需要使用
gradebook = list(zip(subjects, grades))
问题是 zip
是迭代器,而不是序列。我怀疑您有一些旧的或未经测试的代码,与当前的 Python 版本不兼容。您 zip
结果可用作 for
语句的目标,但没有 append
属性 -- 它是一种特殊类型的函数。
转换很简单:早点用它做一个列表:
gradebook = lsit(zip(subjects, grades))
#This code is the problem
gradebook.append(("visual arts", 93))
print(gradebook)
您应该将 zip 更改为列表:
gradebook = list(gradebook)
gradebook.append(("visual arts", 93))
这里是“gradebook = zip(subjects, grades)”,你正在创建一个 zip 实例,但是为了附加一些东西,你需要使用这样的列表函数将它变成一个列表 成绩簿=列表(zip(科目,成绩))