Tag: 字典

如何正确的inheritancedict并覆盖__getitem__&__setitem__

我正在debugging一些代码,我想知道什么时候访问一个特定的字典。 那么,它实际上是一个子类dict并实现了一些额外的function。 无论如何,我想要做的是自己的子类dict并添加覆盖__getitem__和__setitem__产生一些debugging输出。 现在,我有 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'是最终将被设置,我想用来确定输出的关键。 然后我改变了我正在testing的类DictWatch代替DictWatch而不是dict并且改变了对superconstructor的调用。 但是,似乎没有任何事情发生。 我以为我很聪明,但我想知道我是否应该走向一个不同的方向。 谢谢您的帮助!

将JSONstring转换为字典而不是列表

我想传递一个JSON文件并将数据转换成字典。 到目前为止,这是我所做的: import json json1_file = open('json1') json1_str = json1_file.read() json1_data = json.loads(json1_str) 我期待json1_data是一个json1_data ,但它实际上出来作为一个listtypes,当我检查type(json1_data) 。 我错过了什么? 我需要这个字典,所以我可以访问其中一个键。

比较Python中的两个字典

我有两本字典,但是为了简化,我会拿这两本: >>> x = dict(a=1, b=2) >>> y = dict(a=2, b=2) 现在,我想比较x中的每个key, value对在x是否具有相同的对应值。 所以我写了这个: >>> for x_values, y_values in zip(x.iteritems(), y.iteritems()): if x_values == y_values: print 'Ok', x_values, y_values else: print 'Not', x_values, y_values 它起作用,因为一个tuple返回,然后比较平等。 我的问题: 它是否正确? 有没有更好的方法来做到这一点? 最好不要速度,我说的是代码优雅。 更新:我忘了提及,我必须检查有多less个key, value对是相等的。

使用字典在pandas列中重新映射值

我有一个字典,看起来像这样: di = {1: "A", 2: "B"} 我想将其应用于类似于以下内容的dataframe的“col1”列: col1 col2 0 wa 1 1 2 2 2 NaN 要得到: col1 col2 0 wa 1 A 2 2 B NaN 我怎么能最好的做到这一点? 出于某种原因,与此相关的Googlesearch条款仅向我显示了有关如何从字典创build列的链接,反之亦然: – /

如何从一个std :: map中检索所有的键(或值),并把它们放入一个向量?

这是我出来的可能的方式之一: struct RetrieveKey { template <typename T> typename T::first_type operator()(T keyValuePair) const { return keyValuePair.first; } }; map<int, int> m; vector<int> keys; // Retrieve all keys transform(m.begin(), m.end(), back_inserter(keys), RetrieveKey()); // Dump all keys copy(keys.begin(), keys.end(), ostream_iterator<int>(cout, "\n")); 当然,我们也可以通过定义另一个函子RetrieveValues来从地图中检索所有的值。 有没有其他方法可以轻松实现? (我总是想知道为什么std :: map不包括我们这样做的成员函数。)

将字典传递给python中的函数作为关键字参数

我想使用字典在Python中调用一个函数。 这里是一些代码: d = dict(param='test') def f(param): print param f(d) 这打印{'param': 'test'}但我想它只是打印test 。 我希望它能以类似的方式工作更多的参数: d = dict(p1=1, p2=2) def f2(p1,p2): print p1, p2 f2(d) 这可能吗?

从字典中删除一个项目

有没有办法从Python中的字典中删除项目? 我知道我可以在字典上调用.pop ,但返回的是删除的项目。 我正在寻找的东西返回字典减去元素的问题。 目前我有一个帮助函数,接受有问题的字典作为参数,然后返回一个字典删除项目,是否有一个更优雅的解决scheme?

地图生成器的渐变圆

所以我正在制作一个随机岛屿的地图生成器。 它在发生器的核心部分使用Perlin噪声,然后使用具有梯度的圆来形成岛。 圆方法在地图的中心创build了多个圆,渐变颜色从64开始到0。问题是,此方法正在创build具有圆形边的地图部分的非天生外观。 当一个像素产生珀林噪声时,它将在梯度图上得到该像素,然后用蓝色值对它进行多重比较。 因此,如果珀林噪声在像素1,5上给出一个,而在梯度图上的蓝色值是54,则它将输出54的噪声值。如果像素130,560上的珀林噪声为0.5,并且梯度颜色值为64那么噪声值为32。 这是我得到的: 代码有两个关键点,即perlin位: noise = NoiseGenerator.Noise(x, y); double gradColour = getGradColour(x, y).B; double addedNoise = noise * gradColour; double gradNoise = addedNoise;// – gradColour; 然后是梯度图生成器: public static void DrawGrad(float X, float Y, float R, Color C1, Color C2) { Graphics g = Graphics.FromImage(imgGrad); GraphicsPath path = new GraphicsPath(); path.AddEllipse(X, Y, R, […]

静态generics类作为字典

通用类中的静态字段对于每个通用参数组合都会有一个单独的值。 因此它可以用作Dictionary <Type, whatever > 这是比静态字典<types, 什么 >更好或更差? 换句话说,这些实现中的哪一个更高效? public static class MethodGen<TParam> { public static readonly Action<TParam> Method = CreateMethod(); static Action<TParam> CreateMethod() { /*…*/ } } 要么, public static class MethodGen { static readonly Dictionary<Type, Delegate> methods = new Dictionary<Type, Delegate>(); public static Action<T> GetMethod<T>() { //In production code, this would ReaderWriterLock Delegate […]

如何合并多个相同的密钥的字典?

我有这样的多个字典/键值对: d1 = {key1: x1, key2: y1) d2 = {key1: x2, key2: y2) 我希望结果是一个新的字典(如果可能,以最有效的方式): d = {key1: (x1, x2), key2: (y1, y2)} 其实我想要的结果是: d = {key1: (x1.x1attrib, x2.x2attrib), key2: (y1.y1attrib, y2.y2attrib)} 但是,我猜如果有人告诉我如何得到第一个结果,我可以找出其余的。