如何统计列表中rel_item字段值为None的字典数量
嘿,这有几种简单实用的方法来统计你列表里rel_item字段值为None的字典数量,选你顺手的用就行:
方法1:列表推导式(简洁直观,推荐)
这是Python里最常用的写法,一行就能搞定:
list_of_dict = [ {'seq_no': 10, 'file_path': 'file/path', 'rel_item': None}, {'seq_no': 22, 'file_path': 'file/path', 'rel_item': 0}, {'seq_no': 32, 'file_path': 'file/path', 'rel_item': 0}, {'seq_no': 90, 'file_path': 'file/path', 'rel_item': 0}, {'seq_no': 10, 'file_path': 'file/path', 'rel_item': None}, ] count = sum(1 for item in list_of_dict if item['rel_item'] is None) print(count) # 输出结果:2
原理很简单:用生成器表达式遍历每个字典,当rel_item严格等于None时返回1,最后用sum把这些1累加起来就是总数。这里要注意,判断None最好用is None而非== None,这是Python社区的最佳实践哦。
方法2:函数式风格——用filter()函数
如果你偏爱函数式编程的写法,可以试试filter:
count = len(list(filter(lambda x: x['rel_item'] is None, list_of_dict))) print(count) # 输出结果:2
filter会帮你筛选出所有符合条件的字典,把筛选结果转成列表后取长度,就得到了目标数量。
方法3:普通循环(适合新手理解逻辑)
要是想更清晰地看到每一步的执行过程,普通循环绝对稳:
count = 0 for item in list_of_dict: if item['rel_item'] is None: count += 1 print(count) # 输出结果:2
先初始化一个计数器,然后逐个遍历列表里的字典,每遇到rel_item为None的情况,就把计数器加1,逻辑直白易懂。
内容的提问来源于stack exchange,提问作者Krish V
相关产品推荐
相关产品推荐

