python代码


调用c函数时char***的处理

  outtab = pointer(c_char_p())
  len = c_int()
  test2('sb2',pointer(outtab),byref(len))
  for i in range(len.value):
      print outtab[i]

将字典按键排序输出

  1. 按键反序:
    #pids is a dict
    for k,v in sorted(pids.items(),reverse=True):
       print(k,v)
    

一个按加入顺序排序的dict

class OrderedDict(dict):
  '''
  >>> d = dict()
  >>> d['a']=1
  >>> d['b']=2
  >>> d['c']=3
  >>> d.items()
  [('a', 1), ('c', 3), ('b', 2)]
  >>> d = OrderedDict()
  >>> d['a'] = 1
  >>> d['b'] = 2
  >>> d['c'] = 3
  >>> list(d.items())
  [('a', 1), ('b', 2), ('c', 3)]
  '''
  def __init__(self, *args, **kw):
      super(OrderedDict, self).__init__(*args, **kw)
      self.ordered_keys = [] #self.keys()

  def __setitem__(self, key, value):
      if not key in self:
          self.ordered_keys.append(key)
      super(OrderedDict, self).__setitem__(key, value)

  def items(self):
      for key in self.ordered_keys:
          yield key, self[key]