Python实现的字典值比较功能示例

yipeiwu_com6年前Python基础

本文实例讲述了Python实现的字典值比较功能。分享给大家供大家参考,具体如下:

#coding=utf8
import logging
import os
from Lib.DealCsv import ExceptPropertyDic
from wxPython._wx import false
'''''
用于json数据的比较,包含属性、属性值的比较。
'''
#用于比较字符串、列表
PATH=lambda p:os.path.abspath(os.path.join(
  os.path.dirname(__file__), p))
logging.basicConfig(level=logging.DEBUG,
        format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s',
        datefmt='%a, %d %b %Y %H:%M:%S',
        filename=PATH('../Log/judgeProps.log'),
        filemode='w')
def CmpObj( reaResultl,exceptResult):
  try:
    if len(reaResultl)==len(exceptResult):
      if cmp(reaResultl,exceptResult)==0:
        return True
      else:
        return False
    else:
      return False
  except Exception,e:
    print e
#参数包含两个:
#containVar:查找包含的字符
#stringVar:所要查找的字符串
def containVarInString(containVar,stringVar):
  try:
    if isinstance(stringVar, str):
      if containVar in stringVar:
        return True
      else:
        return False
    else:
      return False
  except Exception,e:
    print e
def CmpValue(propsDic,exceptDic):
  try:
    containSeparatorList=[val for var in exceptDic.values() if containVarInString("|",var) for val in var.split("|")]
    notContainSeparatorList=[var for var in exceptDic.values() if not containVarInString("|",var)]
    exceptValueList=notContainSeparatorList+containSeparatorList
    FalseBool=list(set([False for var in propsDic.values() if var not in exceptValueList ]))
    if len(FalseBool):
      return False
    else:
      return True
  except Exception,e:
    print e
propsDic={
  'itemId ': 'XX',
  'item' : 'track' ,
  'serviceId' : 'pageview' ,
  'srcSubModule' : '声音条' ,
  'srcPosition' : 'XX',
  'srcPage' : '发现_推荐' ,
  'srcPageId' : 'XX' ,
  'srcModule' : '焦点图' ,
  'srcTitle' : '焦点图标题' ,
  'focusId' : '焦点图ID'
  }
ExpecDic={
  'itemId ': 'XX',
  'item' : 'track' ,
  'serviceId' : 'pageview' ,
  'srcSubModule' : '声音条' ,
  'srcPosition' : 'XX',
  'srcPage' : '发现_推荐|猜你喜欢|订阅' ,
  'srcPageId' : 'XX' ,
  'srcModule' : '焦点图' ,
  'srcTitle' : '焦点图标题' ,
  'focusId' : '焦点图ID'
  }
if __name__=="__main__":
  print "【听图阁-专注于Python设计】测试结果:"
  if CmpValue(propsDic, ExpecDic):
    print "Equel"
  else:
    print "not equel"

运行结果:

更多关于Python相关内容感兴趣的读者可查看本站专题:《Python字典操作技巧汇总》、《Python数据结构与算法教程》、《Python加密解密算法与技巧总结》、《Python编码操作技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程

希望本文所述对大家Python程序设计有所帮助。

相关文章

基于Numpy.convolve使用Python实现滑动平均滤波的思路详解

基于Numpy.convolve使用Python实现滑动平均滤波的思路详解

​ 1.滑动平均概念 滑动平均滤波法(又称递推平均滤波法),时把连续取N个采样值看成一个队列 ,队列的长度固定为N ,每次采样到一个新数据放入队尾,并扔掉原来队首的一次数据....

Python实现判断字符串中包含某个字符的判断函数示例

Python实现判断字符串中包含某个字符的判断函数示例

本文实例讲述了Python实现判断字符串中包含某个字符的判断函数。分享给大家供大家参考,具体如下: #coding=utf8 #参数包含两个: #containVar:查找包含的字符...

Python里disconnect UDP套接字的方法

UDP 套接字是可以使用 connect 系统调用连接到指定的地址的。从此以后,这个套接字只会接收来自这个地址的数据,而且可以使用 send 系统调用直接发数据而不用指定地址。可以再次调...

Python闭包之返回函数的函数用法示例

Python闭包之返回函数的函数用法示例

闭包(closure)不是什么可怕的东西。如果用对了地方,它们其实可以很强大。闭包就是由其他函数动态生成并返回的函数,通俗地讲,在一个函数的内部,还有一个“内层”的函数,这个“内层”的函...

python使用Pycharm创建一个Django项目

python使用Pycharm创建一个Django项目

本文为Django项目创建的简单介绍,更为详细的Django项目创建,可以参考如下教程: Django入门与实践-/post/64109.htm Pycharm 版本: Profess...