Python字典列表中ID存在性检查问题:代码始终返回未找到
问题原因
直接用id_search in products是错误的——products是字典组成的列表,列表里的元素是完整的字典对象,不是单个的ID数值。你要判断的是某个ID是否存在于字典的'id'字段中,而非这个ID本身是不是列表里的元素。
解决方法
下面是几种可行的实现方式:
方法1:遍历列表逐个检查
遍历products里的每个字典,对比字典的'id'值和输入的id_search:
found = False for product in products: if product['id'] == id_search: found = True break if found: print("Product ID found") else: print("Product ID not found")
方法2:提取ID集合优化查找效率
先把所有产品的ID提取成集合(集合的查找速度比列表更快),再判断输入ID是否在集合内:
product_ids = {p['id'] for p in products} if id_search in product_ids: print("Product ID found") else: print("Product ID not found")
方法3:用any()函数简化代码
借助Python的any()函数,用一行逻辑完成判断:
if any(p['id'] == id_search for p in products): print("Product ID found") else: print("Product ID not found")
内容的提问来源于stack exchange,提问作者Fadhil Mulyono
相关产品推荐
相关产品推荐

