草庐IT

func_dict

全部标签

Python: "except KeyError"比 "if key in dict"快吗?

编辑2:有人建议这是一个类似问题的副本。我不同意,因为我的问题集中在速度上,而另一个问题询问什么更“可读”或“更好”(没有定义更好)。虽然问题相似,但给出的讨论/答案却有很大差异。EDIT:IrealisefromthequestionsthatIcouldhavebeenclearer.Sorryforcodetypos,yesitshouldbeusingtheproperpythonoperatorforaddition.Regardingtheinputdata,Ijustchosealistofrandomnumberssincethat'sacommonsample.Inm

python - dict.get ('..' , None) 或者 None 是什么场景?

如果在某个开源库中发现如下代码:message.get('title',None)orNone有什么理由这样做而不是message.get('title',None)? 最佳答案 这将保证任何虚假值(例如None、''、0、False、[],...)将变成None。即如果你有d={'title':False}然后d.get('title',None)#Falsed.get('title',None)orNone#None这是否有一个实际用例是值得商榷的,但肯定存在细微差别......另请注意,您可以将其简化为:d.get('titl

python - 将 dict 转换为 Python 中的另一个结构

我有一个如下的字典:{'activity_count':[10,11,12],'type':['all','paper','fpy']}我想把这个字典转换成这样的形式:{'all':{'activity_count':10},'paper':{'activity_count':11},'fpy':{'activity_count':12}}我该如何解决这个问题?到目前为止,我尝试了这个解决方案,dic={"activity_count":[10,11,12],"type":["all","paper","fpy"]}in={}i=0forvalindic['type']:forvind

python - 在 Dicts 中查找具有相同值的所有关键元素

我对Python中的字典有疑问。这里是:我有一个像dict={'abc':'a','cdf':'b','gh':'a','fh':'g','hfz':'g'}现在我想通过相同的值获取所有关键元素并将其保存在一个新的字典中。新的Dict应该是这样的:new_dict={'b':('cdf'),'a':('abc','gh'),'g':('fh','hfz')} 最佳答案 如果您对新字典中的列表而不是元组没意见,您可以使用fromcollectionsimportdefaultdictsome_dict={'abc':'a','cdf'

python SyntaxError with dict(1=...),但 {1 :. ..} 有效

Python似乎在接受字典的键类型方面存在不一致。或者,换句话说,它允许某些类型的键以一种定义字典的方式使用,但不允许以其他方式使用:>>>d={1:"one",2:2}>>>d[1]'one'>>>e=dict(1="one",2=2)File"",line1SyntaxError:keywordcan'tbeanexpression{...}符号是否更基础,而dict(...)只是语法糖?是因为Python根本无法解析dict(1="one")吗?我很好奇... 最佳答案 这不是dict的问题,而是Python语法的产物:关键字

python - Python dict 是一个对象吗?

我有一个像这样的dict:>>>my_dict={u'2008':6.57,u'2009':4.89,u'2011':7.74,...u'2010':7.44,u'2012':7.44}使用has_key输出:>>>my_dict.has_key(unicode(2012))True用hasattr输出:>>>hasattr(my_dict,unicode(2012))False我不明白为什么这会有不同的表现。google了一下,发现是因为dict和objects不一样。但是,我仍然无法正确理解其中的区别。(顺便说一句:我正在使用python2.7) 最佳答

python key in dict.keys() performance for large dictionaries

我想知道你们是否可以给我一些关于让我的代码性能更好的建议。我有一组for循环,它查看一个键是否在一个字典中,它的值是一个列表,如果该键存在,它会附加到列表中,如果不存在,它会在for中添加一个新列表那把keydict={}forvalueinvalue_list:ifvalue.keyindict.keys():temp_list=dict[value.key]temp_list.append(value.val)dict[value.key]=temp_listelse:dict[value.key]=[value.val]现在这段代码可以正常工作,但实际上随着字典开始填充行,dic

python - 无法让 pyparsing Dict() 返回嵌套字典

我正在尝试解析以下形式的字符串:'foo(bar:baz;x:y)'我希望结果以嵌套字典的形式返回,即对于上述字符串,结果应如下所示:{'foo':{'bar':'baz','x':'y'}}尽管Dict()和Group()有多种组合,但我无法让它工作。我的(其中一个版本)语法如下所示:importpyparsingasppfield_name=pp.Word(pp.alphanums)field_value=pp.Word(pp.alphanums)colon=pp.Suppress(pp.Literal(':'))expr=pp.Dict(pp.Group(field_name+\

python - 如何修改类 __dict__ (一个映射代理)?

这个问题在这里已经有了答案:Howtoassignanewclassattributevia__dict__?(1个回答)关闭8年前。我想为类中的每个方法应用装饰器。我没有类的源代码,所以不能直接应用装饰器。我想调用一些接受类并添加装饰器的函数。但问题是testclass.__dict__是一个mappingproxy对象,它不支持任何赋值或修改,至少不支持直接赋值或修改。那么问题是如何避免该限制并应用装饰器?这是失败尝试的代码:classqwer:deftest(self):print('test')defdecor(func):defw(*args,**named_args):pr

python - 为什么使用 packed *args/**kwargs 而不是传递 list/dict?

如果我不知道函数将传递多少个参数,我可以使用参数打包来编写函数:defadd(factor,*nums):"""Addnumbersandmultiplybyfactor."""returnsum(nums)*factor或者,我可以通过传递一个数字列表作为参数来避免参数打包:defadd(factor,nums):"""Addnumbersandmultiplybyfactor.:typefactor:int:typenums:listofint"""returnsum(nums)*factor使用参数打包*args比传递数字列表有优势吗?还是有更合适的情况?