我正在使用 Python 来挖掘一个相当大的项目并挖掘有关它的信息。我可以创建一个 ProjectFile
数组,但是我很难弄清楚如何过滤它。
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
如何过滤特定 repo
的 ProjectFile
对象数组?
例如,假设我想过滤 repo
属性为 SomeCocoapod
的对象。
我寻找了 filter
的示例,但我找到的所有内容都使用简单的示例,例如 str
或 int
列表。
最佳答案
您可以使用点符号选择类的属性。
假设 arr 是 ProjectFile 对象的数组。现在您可以使用以下方式过滤 SomeCocoapod。
filter(lambda p: p.repo == "SomeCocoapod", arr)
注意:这会返回一个过滤器对象,它是一个生成器。要返回过滤后的列表,您可以将其包装在列表构造函数中。
作为一种非常 Pythonic 的替代方案,您可以使用列表推导式:
filtered_arr = [p for p in arr if p.repo == "SomeCocoapod"]
关于python - Python 中的过滤对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61577168/