Using non-hashable Python objects as keys in dictionaries

后端 未结 8 1552
栀梦
栀梦 2020-12-19 16:00

Python doesn\'t allow non-hashable objects to be used as keys in other dictionaries. As pointed out by Andrey Vlasovskikh, there is a nice workaround for the special case of

8条回答
  •  自闭症患者
    2020-12-19 16:18

    I agree with Lennart Regebro that you don't. However I often find it useful to cache some function calls, callable object and/or Flyweight objects, since they may use keyword arguments.

    But if you really want it, try pickle.dumps (or cPickle if python 2.6) as a quick and dirty hack. It is much faster than any of the answers that uses recursive calls to make items immutable, and strings are hashable.

    import pickle
    hashable_str = pickle.dumps(unhashable_object)
    

提交回复
热议问题