python: append() into zip() 问题。 “zip”对象没有属性“附加”[重复]

Posted

技术标签:

【中文标题】python: append() into zip() 问题。 “zip”对象没有属性“附加”[重复]【英文标题】:python: append() into zip() problem. 'zip' object has no attribute 'append' [duplicate] 【发布时间】: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,但是移植还没有完成。 【参考方案1】:

您应该将 zip 更改为列表:

gradebook = list(gradebook)
gradebook.append(("visual arts", 93))

【讨论】:

【参考方案2】:

问题在于zip 是一个迭代器,而不是一个序列。我怀疑你有一些旧的或未经测试的代码,与当前的 Python 版本不兼容。您的zip 结果可用作for 语句的目标,但没有append 属性——这是一种特殊类型的函数。

转换很简单:早先列出一个列表:

gradebook = lsit(zip(subjects, grades))

#This code is the problem
gradebook.append(("visual arts", 93))

print(gradebook)

【讨论】:

谢谢,你明白了。我先学了python2,现在学了3。我想这就是我这样写的原因。再次感谢你。当时间限制关闭时,我会接受你的回答【参考方案3】:

因为gradebook 是一个zip 对象。 您可能需要使用

gradebook = list(zip(subjects, grades))

【讨论】:

感谢您的友好和快速的回​​答 :)【参考方案4】:

在这里“gradebook = zip(subjects,grades)”你正在创建一个 zip 实例,但为了添加一些东西,你需要使用这样的列表函数将其设为列表 成绩簿 = 列表(zip(科目,成绩))

【讨论】:

谢谢你的回答 :) 希望你有一个完美的一天 :)

以上是关于python: append() into zip() 问题。 “zip”对象没有属性“附加”[重复]的主要内容,如果未能解决你的问题,请参考以下文章

python zipfile模块 ZIP64

python 字典append

在oracle中我反复运行insert /*+append*/ into tablename 和truncate tablename

python怎样压缩和解压缩ZIP文件

使用Python将文件列表添加到zip文件中

Tornado中insert into sql语句的构造