我正在调试一些代码,我想知道何时访问特定的字典.好吧,它实际上是一个子类dict并实现了一些额外功能的类.无论如何,我想做的是dict自己子类化并添加覆盖__getitem__并__setitem__产生一些调试输出.现在,我有
class DictWatch(dict):
    def __init__(self, *args):
        dict.__init__(self, args)
    def __getitem__(self, key):
        val = dict.__getitem__(self, key)
        log.info("GET %s['%s'] = %s" % str(dict.get(self, 'name_label')), str(key), str(val)))
        return val
    def __setitem__(self, key, val):
        log.info("SET %s['%s'] = %s" % str(dict.get(self, 'name_label')), str(key), str(val)))
        dict.__setitem__(self, key, val)
' name_label'是一个最终将设置的键,我想用它来识别输出.然后我改变了我正在修改的类DictWatch而不是dict更改了对超级构造函数的调用.但是,似乎没有任何事情发生.我以为我很聪明,但我想知道我是否应该走另一个方向.
谢谢您的帮助!
Sry如果这个问题已经存在,但我现在已经找了很长时间了.
我在python中有一个字典,我想要做的是从列表中获取一些值,但我不知道这是否得到了实现的支持.
myDictionary.get('firstKey')   # works fine
myDictionary.get('firstKey','secondKey')
# gives me a KeyError -> OK, get is not defined for multiple keys
myDictionary['firstKey','secondKey']   # doesn't work either
但有什么办法可以实现这个目标吗?在我的例子中,它看起来很简单,但是假设我有一个包含20个条目的字典,我想获得5个密钥.还有其他方法吗?
myDictionary.get('firstKey')
myDictionary.get('secondKey')
myDictionary.get('thirdKey')
myDictionary.get('fourthKey')
myDictionary.get('fifthKey')
鉴于以下字典:
dct = {'a':3, 'b':3,'c':5,'d':3}
如何将这些值应用于列表,例如:
lst = ['c', 'd', 'a', 'b', 'd']
为了得到类似的东西:
lstval = [5, 3, 3, 3, 3]
我有一个Python列表,比方说a = [0,1,2,3,4,5,6].我也有一份指数清单b = [0,2,4,5].如何获取a带索引的元素列表b?
我遇到了以下问题。
dict1 = {'a': 1, 'b': 2, 'c': 3, 'd': 4}
正常检索方法:dict1['a']  ->输出->1
预期方法:dict1['a', 'b']->输出->[1, 2]
我的要求是通过同时提供多个键从字典中提取多个值,如上面预期方法中所述。
有办法做到吗?如果我必须编辑内置的 dict 类方法,我该怎么做?
我正在读一本关于Python的书,它说当你调用help(obj)列出所有可以调用obj的方法时,__双方包围的方法都是无法调用的私有辅助方法.
但是,列出的字符串方法之一是__len__,您可以验证if是否s为某个字符串,进入s.__len__()Python返回的长度为s.
为什么可以调用其中的一些方法,例如__len__,但其他方法无法调用?