Advertisement
Guest User

Untitled

a guest
Jul 23rd, 2014
187
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.36 KB | None | 0 0
  1. # really verbose
  2. new = {}
  3. for (key, value) in data:
  4. if key in new:
  5. new[key].append( value )
  6. else:
  7. new[key] = [value]
  8.  
  9.  
  10. # easy with setdefault
  11. new = {}
  12. for (key, value) in data:
  13. group = new.setdefault(key, []) # key might exist already
  14. group.append( value )
  15.  
  16.  
  17. # even simpler with defaultdict
  18. new = defaultdict(list)
  19. for (key, value) in data:
  20. new[key].append( value ) # all keys have a default already
  21.  
  22. headers = parse_headers( msg ) # parse the message, get a dict
  23. # now add all the optional headers
  24. for headername, defaultvalue in optional_headers:
  25. headers.setdefault( headername, defaultvalue )
  26.  
  27. def notify(self, level, *pargs, **kwargs):
  28. kwargs.setdefault("persist", level >= DANGER)
  29. self.__defcon.set(level, **kwargs)
  30. try:
  31. kwargs.setdefault("name", self.client.player_entity().name)
  32. except pytibia.PlayerEntityNotFound:
  33. pass
  34. return _notify(level, *pargs, **kwargs)
  35.  
  36. nextID = intGen()
  37. myDict = {}
  38. for lots of complicated stuff:
  39. #stuff that generates unpredictable, possibly already seen str
  40. strID = myDict.setdefault(myStr, nextID())
  41.  
  42. class intGen:
  43. def __init__(self):
  44. self.i = 0
  45.  
  46. def __call__(self):
  47. self.i += 1
  48. return self.i
  49.  
  50. >>> mydata = local()
  51. >>> mydata.__dict__
  52. {'number': 42}
  53. >>> mydata.__dict__.setdefault('widgets', [])
  54. []
  55. >>> mydata.widgets
  56. []
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement