python - 如何从可迭代对象中删除项目?
问题描述
因此,假设我有一个可迭代的类 Movies,而 self.movies 是 Movie 对象的列表。如何创建 remove_movie 方法?我提供的方法不起作用,因为 iterable 不是列表?
class Movies:
def __init__(self):
self.movies = []
def __iter__(self):
return iter(self.movies)
def add_movie(self, movie):
pass
def remove_movie(self, id):
for movie in self:
if movie.id == id:
self.remove(movie)
解决方案
你得到一个 AttributeError。
self.movies.remove(movie)
推荐阅读
- python - 使用python的多级分类excel数据表示
- php - Laravel - 如何从嵌套关系中提取字段
- android - 应用程序不合规并被删除:安全漏洞:不安全的主机名验证
- html - 如何在 vuejs 中删除 v-app-bar 下的空间?
- opencv - CV2二值化处理后的图像
- ruby-on-rails - 生产中的数据库创建问题
- tableau-api - 带有多个度量的饼图标签上的百分比 Tableau
- createml - Xcode 的“Create ML”开发者工具总是“在 10 次迭代的早期收敛”
- sql - Teradata 中的另一种运行总计
- javascript - 向数组添加 1 - Javascript