python - Why doesn't list have safe "get" method like dictionary? -
>>> d = {'a':'b'} >>> d['a'] 'b' >>> d['c'] keyerror: 'c' >>> d.get('c', 'fail') 'fail' >>> l = [1] >>> l[10] indexerror: list index out of range
ultimately doesn't have safe .get
method because dict
associative collection (values associated names) inefficient check if key present (and return value) without throwing exception, while super trivial avoid exceptions accessing list elements (as len
method fast). .get
method allows query value associated name, not directly access 37th item in dictionary (which more you're asking of list).
of course, can implement yourself:
def safe_list_get (l, idx, default): try: return l[idx] except indexerror: return default
you monkeypatch onto __builtins__.list
constructor in __main__
, less pervasive change since code doesn't use it. if wanted use lists created own code subclass list
, add get
method.
Comments
Post a Comment