草庐IT

字典序法

全部标签

python - 使用键字符串列表作为路径添加到字典

我有以下命令:aDict={"a":{"b":{"c1":{},"c2":{},}}}第二个字典:aSecondDict={"d1":{},"d2":{},"d3":{},}和一个“路径”元组:path=("a","b","c2")我现在想在元组提供的路径上将第二个字典添加到第一个字典中:aResultDict={"a":{"b":{"c1":{},"c2":{"d1":{},"d2":{},"d3":{},},}}}实现这一目标的pythonic方法是什么? 最佳答案 您可以使用reduce1获取字典并使用dict.update将

python - Pandas 使用跨多个列的字典值相乘

给定以下数据框:importpandasaspddf=pd.DataFrame({'a':[1,2,3,4,5],'b':[5,4,3,3,4],'c':[3,2,4,3,10],'d':[3,2,1,1,1]})以及以下参数列表:params={'a':2.5,'b':3.0,'c':1.3,'d':0.9}生成以下所需的输出:abcdoutput0153324.11242221.42334122.63433123.845410138.4我一直在用它来产生结果:df['output']=[np.sum(params[col]*df.loc[idx,col]forcolindf)for

python - 为文件中的每个单词创建字典并计算其后单词的频率

我正在尝试解决一个难题,但迷路了。这是我应该做的:INPUT:fileOUTPUT:dictionaryReturnadictionarywhosekeysareallthewordsinthefile(brokenbywhitespace).Thevalueforeachwordisadictionarycontainingeachwordthatcanfollowthekeyandacountforthenumberoftimesitfollowsit.Youshouldlowercaseeverything.Usestripandstring.punctuationtostrip

python - 根据另一个字典的值过滤字典列表

我有一个字典列表list_of_dict,一组键set_of_keys和另一个字典dict_to_compare。如果三个可能键中任意两个的值与dict_to_compare中的值匹配,我需要过滤字典列表。输入:set_of_keys={'val1','val2','val3'}dict_to_compare={'k1':'val1','k2':'val2','k3':'val6'}list_of_dict=[{'k1':'val1','k2':'val2','k3':'val3'},{'k1':'val4','k2':'val5','k3':'val6'},{'k1':'val7',

python - 如何在作为字典值的列表中添加元素,并且这些元素不会作为该字典的另一个键重复?

假设我有一个包含变位词字符串的列表。例如,anList=['aba','baa','aab','cat','tac','act','sos','oss']我想构建一个字典,其中包含该列表的元素作为键,该元素的变位字符串将作为该键的值作为列表,此外,将添加到列表中的元素不会作为该列表的另一个键重复字典。例如,如果'baa'已添加到列表中,该列表是键'aba'的值,则'baa'不能再添加为键。输出字典应该是这样的,anDict={'aba':['baa','aab'],'cat':['tac','act'],'sos':['oss']}我尝试了很多方法,但问题是列表中添加的元素再次添加为字

python - python中嵌套字典的排序列表

我有类似的东西[{"key":{"subkey1":1,"subkey2":"a"}},{"key":{"subkey1":10,"subkey2":"b"}},{"key":{"subkey1":5,"subkey2":"c"}}]并且需要有:[{"key":{"subkey1":10,"subkey2":"b"}},{"key":{"subkey1":5,"subkey2":"c"}},{"key":{"subkey1":1,"subkey2":"a"}}]非常感谢!编辑:我想按subkey1排序,这在以前并不清楚。 最佳答案

python - 是否可以创建字典 "template"?

我正在创建一个食谱选择器,并希望创建一个统一的字典模板。我目前有这样的东西:menu_item_var={'name':"MenuItem",'ing':(ingredients)}我担心为每个menu_item_var重新键入name和ing,为了节省时间和可能因误键而造成的灾难。我知道我可以将MenuItem添加为我的tuple中的项目0,删除dict并运行for循环使字典更安全,但这不会将原始menu_item_var从tuple转换为dict。有没有“更聪明”的方法来做到这一点? 最佳答案 我可能会建议考虑创建一个类并使用O

Python - 在字典中使用 numpy 数组作为键的替代方法

我是Pythonnumpy的新手。我试图在我的一个函数中使用numpy数组作为字典中的键,然后Python解释器告诉我numpy数组不可散列。我刚刚发现解决此问题的一种方法是使用repr()函数将numpy数组转换为字符串,但它看起来非常昂贵。有没有更好的方法达到同样的效果?更新:我可以创建一个新类来包含numpy数组,这似乎是实现我想要的目标的正确方法。只是想知道有没有更好的方法?更新2:使用一个类来包含数组中的数据,然后覆盖__hash__函数是可以接受的,但是,我更喜欢@hpaulj提供的解决方案。将array/list转换为tuple以更好的方式满足我的需要,因为它不需要额外的

python - 通过字典有效地替换 Pandas 系列中的值

如何通过字典d替换Pandas系列s中的值已被多次询问和重新询问。推荐的方法(1、2、3、4)要么使用s.replace(d),要么偶尔使用。map(d)如果您的所有系列值都在字典键中找到。但是,使用s.replace的性能通常非常慢,通常比简单的列表理解慢5-10倍。备选方案s.map(d)具有良好的性能,但仅在字典中找到所有键时才推荐使用。为什么s.replace这么慢,如何提高性能?importpandasaspd,numpyasnpdf=pd.DataFrame({'A':np.random.randint(0,1000,1000000)})lst=df['A'].values

python检查多级字典键是否存在

许多SO帖子向您展示了如何有效地检查字典中是否存在键,例如Checkifagivenkeyalreadyexistsinadictionary如何为多级key执行此操作?例如,如果d["a"]["b"]是一个字典,我如何检查d["a"]["b"]["c"]["d"]存在而不做像这样可怕的事情:if"a"indandisInstance(d["a"],dict)and"b"ind["a"]andisInstance(d["a"]["b"],dict)and...有没有像这样的语法if"a"/"b"/"c"/"d"ind我实际使用它的目的是:我们有json,使用simplejson解析为字