Adr*_*ian 15 python oop python-3.x
我正在使用 Python 来挖掘一个相当大的项目并挖掘有关它的信息。我能够创建一个ProjectFiles 数组,但是我很难弄清楚如何过滤它。
class ProjectFile:
def __init__(self, filename: str,
number_of_lines: int,
language: str,
repo: str,
size: int):
self.filename = filename
self.number_of_lines = number_of_lines
self.language = language
self.repo = repo
self.size = size
Run Code Online (Sandbox Code Playgroud)
我如何过滤ProjectFile特定对象的数组repo?
例如,假设我想过滤repo属性为 的对象SomeCocoapod。
我寻找过 的示例filter,但我找到的所有内容都使用简单的示例,例如str或 的列表int。
Hie*_*nga 17
您可以使用点符号选择类的属性。
假设arr是 ProjectFile 对象的数组。现在您可以使用以下方式过滤 SomeCocoapod。
filter(lambda p: p.repo == "SomeCocoapod", arr)
Run Code Online (Sandbox Code Playgroud)
注意:这会返回一个过滤器对象,它是一个生成器。要返回过滤后的列表,您可以将其包装在列表构造函数中。
作为一个非常Pythonic的替代方案,你可以使用列表推导式:
filtered_arr = [p for p in arr if p.repo == "SomeCocoapod"]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
20431 次 |
| 最近记录: |