相关疑难解决方法(0)

如何正确地子类化dict并覆盖__getitem__&__setitem__

我正在调试一些代码,我想知道何时访问特定的字典.好吧,它实际上是一个子类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)
Run Code Online (Sandbox Code Playgroud)

' name_label'是一个最终将设置的键,我想用它来识别输出.然后我改变了我正在修改的类DictWatch而不是dict更改了对超级构造函数的调用.但是,似乎没有任何事情发生.我以为我很聪明,但我想知道我是否应该走另一个方向.

谢谢您的帮助!

python dictionary

75
推荐指数
5
解决办法
8万
查看次数

Python字典获得多个值

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
Run Code Online (Sandbox Code Playgroud)

但有什么办法可以实现这个目标吗?在我的例子中,它看起来很简单,但是假设我有一个包含20个条目的字典,我想获得5个密钥.还有其他方法吗?

myDictionary.get('firstKey')
myDictionary.get('secondKey')
myDictionary.get('thirdKey')
myDictionary.get('fourthKey')
myDictionary.get('fifthKey')
Run Code Online (Sandbox Code Playgroud)

python dictionary

35
推荐指数
8
解决办法
5万
查看次数

将字典值映射到列表

鉴于以下字典:

dct = {'a':3, 'b':3,'c':5,'d':3}
Run Code Online (Sandbox Code Playgroud)

如何将这些值应用于列表,例如:

lst = ['c', 'd', 'a', 'b', 'd']
Run Code Online (Sandbox Code Playgroud)

为了得到类似的东西:

lstval = [5, 3, 3, 3, 3]
Run Code Online (Sandbox Code Playgroud)

python dictionary list

31
推荐指数
4
解决办法
3万
查看次数

获取具有给定索引的Python列表的子列表?

我有一个Python列表,比方说a = [0,1,2,3,4,5,6].我也有一份指数清单b = [0,2,4,5].如何获取a带索引的元素列表b

python list python-2.7

25
推荐指数
4
解决办法
5万
查看次数

如何同时使用多个键提取字典值?

我遇到了以下问题。

dict1 = {'a': 1, 'b': 2, 'c': 3, 'd': 4}
Run Code Online (Sandbox Code Playgroud)

正常检索方法:dict1['a'] ->输出->1
预期方法:dict1['a', 'b']->输出->[1, 2]

我的要求是通过同时提供多个键从字典中提取多个值,如上面预期方法中所述。

有办法做到吗?如果我必须编辑内置的 dict 类方法,我该怎么做?

python dictionary key list

4
推荐指数
1
解决办法
1万
查看次数

在Python中调用__包围的方法

我正在读一本关于Python的书,它说当你调用help(obj)列出所有可以调用obj的方法时,__双方包围的方法都是无法调用的私有辅助方法.

但是,列出的字符串方法之一是__len__,您可以验证if是否s为某个字符串,进入s.__len__()Python返回的长度为s.

为什么可以调用其中的一些方法,例如__len__,但其他方法无法调用?

python methods

1
推荐指数
1
解决办法
157
查看次数

标签 统计

python ×6

dictionary ×4

list ×3

key ×1

methods ×1

python-2.7 ×1