我是Python的新手(第一天)。我有一个数据集,该数据集通过布尔“ poi”键指示某人是否是感兴趣的人。我能够使用以下内容过滤数据:
filtered = []
for n in enron_data:
if enron_data[n]['poi']: filtered.append(enron_data[n]);
print(len(filtered))
Run Code Online (Sandbox Code Playgroud)
我尝试了一段时间使用内置在过滤器中的python,但是无法使用。使用内置过滤器的一种干净方法是什么?
示例数据: {'METTS MARK': {... 'poi': False,}, ...}
您可以使用列表解析来遍历字典,然后创建评估值的新名单True的value['poi']。
filtered = [v for k, v in enron_data.items() if v['poi']]
Run Code Online (Sandbox Code Playgroud)
实际上,您根本不使用键,因此您可以这样做:
filtered = [v for v in enron_data.values() if v['poi']]
Run Code Online (Sandbox Code Playgroud)
或使用过滤器(类似于@AbidHasan):
filtered = filter(lambda x: x['poi'], enron_data.values())
Run Code Online (Sandbox Code Playgroud)