Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # really verbose
- new = {}
- for (key, value) in data:
- if key in new:
- new[key].append( value )
- else:
- new[key] = [value]
- # easy with setdefault
- new = {}
- for (key, value) in data:
- group = new.setdefault(key, []) # key might exist already
- group.append( value )
- # even simpler with defaultdict
- new = defaultdict(list)
- for (key, value) in data:
- new[key].append( value ) # all keys have a default already
- headers = parse_headers( msg ) # parse the message, get a dict
- # now add all the optional headers
- for headername, defaultvalue in optional_headers:
- headers.setdefault( headername, defaultvalue )
- def notify(self, level, *pargs, **kwargs):
- kwargs.setdefault("persist", level >= DANGER)
- self.__defcon.set(level, **kwargs)
- try:
- kwargs.setdefault("name", self.client.player_entity().name)
- except pytibia.PlayerEntityNotFound:
- pass
- return _notify(level, *pargs, **kwargs)
- nextID = intGen()
- myDict = {}
- for lots of complicated stuff:
- #stuff that generates unpredictable, possibly already seen str
- strID = myDict.setdefault(myStr, nextID())
- class intGen:
- def __init__(self):
- self.i = 0
- def __call__(self):
- self.i += 1
- return self.i
- >>> mydata = local()
- >>> mydata.__dict__
- {'number': 42}
- >>> mydata.__dict__.setdefault('widgets', [])
- []
- >>> mydata.widgets
- []
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement