Python字典items()搭配<=运算符的作用及为何不能用==替代
字典items()运算符<=的逻辑解释
Python 3.9及以上版本中,dict.items()返回的字典视图对象支持集合类的比较运算,其中<=表示左侧键值对集合是右侧键值对集合的子集,针对你的疑问具体解答如下:
为什么==运算符无法生效
==判断的是左右两侧的键值对集合是否完全相等,你的result字典仅包含3组STR对应的键值对,没有name字段,而data中的每一行row都额外包含name对应的键值对,两者的键值对数量、内容都不可能完全一致,所以==永远返回False,无法实现匹配逻辑。
<=运算会不会跳过name键
不存在“跳过”的特殊逻辑,子集判断的原生规则就是:只要求左侧的所有键值对,都能在右侧找到完全匹配的项,右侧多余的键值对不会影响判断结果。
以你给出的测试数据为例,Bob对应的行中,AGATC、AATG、TATC三个键的值和result完全匹配,所以result.items() <= row.items()返回True,其他行的STR值无法全部匹配,所以判断不成立。
你可以用下面的简化代码验证规则:
result = {'AGATC': '4', 'AATG': '1', 'TATC': '5'} bob_row = {'name': 'Bob', 'AGATC': '4', 'AATG': '1', 'TATC': '5'} # 完全相等判断,返回False print(result.items() == bob_row.items()) # 子集判断,返回True print(result.items() <= bob_row.items())
内容的提问来源于stack exchange,提问作者Veeeetus
相关产品推荐
相关产品推荐

