python - 如何在列表派生类中使用列表推导
问题描述
我有一个列表派生类,并希望使用列表理解分配其内容这是示例代码:
class MyList(list):
def __init__(self, some_data):
self = [Foo(x) for x in some_data]
def customFilter(self):
self = [x for x in self if x.Selected]
当然这不起作用,因为对 self 的赋值只是创建了一个局部变量。有没有一种pythonic方法可以在不使用for循环的情况下实现这一点?
解决方案
使用Collections.UserList可能会更好,它是为子类化而设计的。它为您提供了一个data
包含列表内容的属性,并避免了分配给的问题self
:
from collections import UserList
def Foo(c):
return c * 2
class MyList(UserList):
def __init__(self, some_data):
self.data = [Foo(x) for x in some_data]
MyList([1, 2, 3])
# [2, 4, 6]
推荐阅读
- sequelize.js - 如何使用`selectGraphQLResultFromTable` 在后图形解析器中加载 Sequelize 查询的关系?
- arm - STM32F103在KEIL IDE下支持浮点吗
- kentico - 创建自定义同义词列表
- computer-vision - 为我的图像应用多 Otsu 阈值
- pandas - Pandas 适用于 group by 以进行文本连接
- plugins - 将 tt_content 的 TCA 更改为子类型?
- ssl - 套接字 sslerror 握手失败 Python 2.4.3
- php - MAMP 4.2 + CodeIgnter 4.1:无法在 Windows 10 环境下加载 PHP 7.4.1 中的 intl 扩展
- assembly - How to split a 32-bit integer to two 16-bit half-words
- r - 在条件发生变化的情况下按条件创建序列