我有一个像这样的字典列表: [{'price': 99, 'barcode': '2342355'}, {'price': 88, 'barcode': '2345566'}] 我想findmin()和max()价格。 现在,我可以很容易地使用一个带有lambdaexpression式的键(在另一个SO文章中find)对其进行sorting,因此,如果没有其他方法,我不会卡住。 然而,从我看到的几乎总是有一个Python的直接方式,所以这是一个机会,让我学习更多一点。 TIA, 汉克费伊
我正在尝试使用.keys() ,而不是像过去一样获取密钥列表。 但是我得到这个。 b = { 'video':0, 'music':23 } k = b.keys() print( k[0] ) >>>TypeError: 'dict_keys' object does not support indexing print( k ) dict_keys(['music', 'video']) 除非我疯了,否则应该只打印['音乐','video']。 这是怎么回事?
我有这个 d1 = OrderedDict([('a', '1'), ('b', '2')]) 如果我这样做 d1.update({'c':'3'}) 然后我得到这个 OrderedDict([('a', '1'), ('b', '2'), ('c', '3')]) 但我想要这个 [('c', '3'), ('a', '1'), ('b', '2')] 无需创build新的字典
在Python 3.3中,一个ChainMap类被添加到collections模块中: ChainMap类提供了快速链接多个映射,以便它们可以被视为一个单元。 通常比创build新的字典和运行多个update()调用要快得多。 例: >>> from collections import ChainMap >>> x = {'a': 1, 'b': 2} >>> y = {'b': 10, 'c': 11} >>> z = ChainMap(y, x) >>> for k, v in z.items(): print(k, v) a 1 c 11 b 10 这个问题的动机是这个问题的公开(没有PEP创build)。 据我所知,这是一个替代有一个额外的字典和维护与update() 。 问题是: ChainMap覆盖哪些用例? 有什么现实的ChainMap例子? 它是否用于切换到python3的第三方库? 奖金的问题:有没有办法在Python2.x上使用它? 我听说过Transforming Code into Beautiful, […]
我看你如何通过密钥访问你的collections。 但是,哈希函数本身在幕后有很多操作,不是吗? 假设你有一个非常有效的散列函数,它仍然可能需要很多操作。 这可以解释吗?
我有一个程序,从套接字读取一个XML文件。 我有xml文档存储在一个string,我想直接转换成一个Python字典,就像在Django的simplejson库中完成一样。 举一个例子: str ="<?xml version="1.0" ?><person><name>john</name><age>20</age></person" dic_xml = convert_to_dic(str) 然后, dic_xml看起来像{'person' : { 'name' : 'john', 'age' : 20 } } 提前致谢, 泽玛丽亚
我想在我的swift项目中将一个函数转换为字典json格式,但我得到一个错误: 无法转换expression式的types(@lvalue NSData,选项:IntegerLitralConvertible … 这是我的代码: func convertStringToDictionary (text:String) -> Dictionary<String,String> { var data :NSData = text.dataUsingEncoding(NSUTF8StringEncoding)! var json :Dictionary = NSJSONSerialization.JSONObjectWithData(data, options:0, error: nil) return json } 我在Objective-C中做了这个函数: – (NSDictionary*)convertStringToDictionary:(NSString*)string { NSError* error; //giving error as it takes dic, array,etc only. not custom object. NSData *data = [string dataUsingEncoding:NSUTF8StringEncoding]; id json = [NSJSONSerialization JSONObjectWithData:data options:0 […]
字典在Python 3.6中(至less在CPython实现下)与以前的版本不同。 这似乎是一个实质性的变化,但这只是文档中的一小段。 它被描述为CPython的实现细节而不是语言特征,但也意味着这可能在未来成为标准。 新的字典实现如何在保持元素顺序的同时比旧的更好? 以下是文档中的文字: dict()现在使用由PyPy开创的“紧凑”表示。 新的dict()的内存使用比Python 3.5要小20%到25%。 PEP 468 (保留函数中的** kwargs的顺序)由此实现。 这个新实现的顺序保留方面被认为是一个实现细节,不应该被依赖(这可能会在将来发生变化,但是希望在改变语言规范之前在几个版本中使用这个新的dict实现语言为所有当前和未来的Python实现指定保留顺序的语义;这也有助于保持随机迭代顺序仍然有效的老版本语言的向后兼容性,例如Python 3.5)。 (由INADA Naoki提供, 刊登在27350号文件中, 最初由Raymond Hettinger提出 。 编辑:Raymond Hettinger 最近在推特上说 :“[有了dict命令]非常方便,对[Python] 3.7的保证几乎是不可避免的”。 编辑2:如何CPython 3.6 dict的两个例子并不总是显示在插入顺序, 与pprint和IPython的pprint 。