过滤器在python中返回True,但不返回False

时间:2019-11-29 10:13:23

标签: python python-3.x

我有一个包含False,None和True的列表。这些值来自于删除字典列表。我能够相应地擦除值,并希望过滤掉所有None值。但是,过滤器仅返回True。有人可以解释为什么吗?而我如何才能获得False和True?谢谢!

lst = [False, None, True]
list(filter(None, lst))

输出

[True]

样本数据

dict_lst = [{'correct':False, 'number': 20, 'title': 'The King'}, {'correct': True, 'number': 10, 'title': 'The Queen'}, {'number':5, 'title':'The Prince'}]

我写的通过字典抓取的功能如下-

def extract_info(row, keys_lst):
'''extract value for dictionary found in event_data'''
   dict_entry = json.loads(row)
   result = [dict_entry.get(key, None) for key in keys_lst]
   extract_val = list(filter(None, result))
   if len(extract_val) == 1:
      return extract_val[0]
   else:
      return extract_val[0]

0 个答案:

没有答案