Tag: 字典

如何创build一个列表中的键和字典值默认(说)零的字典?

我有a = [1,2,3,4] ,我想d = {1:0, 2:0, 3:0, 4:0} d = dict(zip(q,[0 for x in range(0,len(q))])) 工作,但丑陋。 什么是更清洁的方式?

快速的方法来在Python中复制字典

我有一个Python程序,与字典很多。 我必须复制数千次的字典。 我需要密钥和相关内容的副本。 副本将被编辑,不得链接到原件(例如,副本中的更改不得影响原件。) 键是string,值是整数(0/1)。 我目前使用一个简单的方法: newDict = oldDict.copy() 分析我的代码显示,复制操作大部分时间都需要。 dict.copy()方法有更快的select吗? 什么是最快的?

Dictionary vs Object – 哪个更有效率,为什么?

在内存使用和CPU消耗方面,什么是更高效的Python – 字典或对象? 背景:我必须将大量的数据加载到Python中。 我创build了一个只是一个字段容器的对象。 创build4M实例并将其放入字典需要大约10分钟和6GB的内存。 字典准备好后,访问它是一个眨眼之间。 例子:为了检查性能,我写了两个相同的简单程序 – 一个是使用对象,其他字典: 对象(执行时间〜18秒): class Obj(object): def __init__(self, i): self.i = i self.l = [] all = {} for i in range(1000000): all[i] = Obj(i) 字典(执行时间〜12秒): all = {} for i in range(1000000): o = {} o['i'] = i o['l'] = [] all[i] = o 问题:我做错了什么或字典比对象快? 如果确实字典performance更好,有人可以解释为什么?

HashMap为未find的键返回默认值?

有没有可能有一个HashMap返回一个默认值的所有密钥是不是在该集合中find?

用Java打印一张地图

我正在寻找漂亮的方式来漂亮地打印Map 。 map.toString()给我: {key1=value1, key2=value2, key3=value3} 我想在我的地图项值更多的自由,我正在寻找更像这样的东西: key1="value1", key2="value2", key3="value3" 我写了这么一小段代码: StringBuilder sb = new StringBuilder(); Iterator<Entry<String, String>> iter = map.entrySet().iterator(); while (iter.hasNext()) { Entry<String, String> entry = iter.next(); sb.append(entry.getKey()); sb.append('=').append('"'); sb.append(entry.getValue()); sb.append('"'); if (iter.hasNext()) { sb.append(',').append(' '); } } return sb.toString(); 但我相信有一个更优雅和简洁的方式来做到这一点。

python元组字典

对于元组, t = ((1, 'a'),(2, 'b')) dict(t)返回{1: 'a', 2: 'b'} 是否有一个很好的方法来获得{'a': 1, 'b': 2} (键和vals交换)? 我希望能够返回给定'a'或2给定'b',也许转换为字典不是最好的方法。

声明并初始化打字稿中的字典

给出以下代码 interface IPerson { firstName: string; lastName: string; } var persons: { [id: string]: IPerson; } = { "p1": { firstName: "F1", lastName: "L1" }, "p2": { firstName: "F2" } }; 为什么不初始化被拒绝? 毕竟,第二个对象没有“lastName”属性。

初始化番石榴ImmutableMap

番石榴提供了一个很好的初始化地图的快捷方式。 但是,当我的映射初始化为9个条目时,我得到以下编译器错误(Eclipse Indigo)。 ImmutableMaptypes中of(K, V, K, V, K, V, K, V, K, V)不适用于参数(String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String) ImmutableMap<String,String> myMap = ImmutableMap.of( "key1", "value1", "key2", "value2", "key3", "value3", "key4", "value4", "key5", "value5", "key6", "value6", "key7", "value7", "key8", "value8", "key9", "value9" ); 消息似乎是这样说的 ImmutableMap具有四对键值的最大值。 […]

在c ++ map中插入vs emplace vs operator

我第一次使用地图,我意识到有很多方法来插入一个元素。 您可以使用emplace() , operator[]或insert() ,以及使用value_type或make_pair等变体。 虽然关于所有这些问题以及关于特殊情况的问题都有很多信息,但是我仍然不能理解这个大局。 所以,我的两个问题是: 他们每个人的优点是什么? 有没有必要为标准添加emplace? 没有它之前有什么是不可能的吗?

有没有更安全的方式添加一个项目到Dictionary <>?

我需要添加键/对象对字典,但我当然需要先检查是否已经存在的密钥,否则我得到一个“ 密钥已经存在字典 ”的错误。 下面的代码解决了这个问题,但是笨重。 没有像这样做一个string帮助器方法是什么更优雅的方式呢? using System; using System.Collections.Generic; namespace TestDictStringObject { class Program { static void Main(string[] args) { Dictionary<string, object> currentViews = new Dictionary<string, object>(); StringHelpers.SafeDictionaryAdd(currentViews, "Customers", "view1"); StringHelpers.SafeDictionaryAdd(currentViews, "Customers", "view2"); StringHelpers.SafeDictionaryAdd(currentViews, "Employees", "view1"); StringHelpers.SafeDictionaryAdd(currentViews, "Reports", "view1"); foreach (KeyValuePair<string, object> pair in currentViews) { Console.WriteLine("{0} {1}", pair.Key, pair.Value); } Console.ReadLine(); } } public […]