当前位置: 首页 > 面试题库 >

在嵌套的Python词典中搜索键

漆雕成弘
2023-03-14
问题内容

我有一些这样的Python字典:

A = {id: {idnumber: condition},....

例如

A = {1: {11 : 567.54}, 2: {14 : 123.13}, .....

我需要搜索字典中是否有字典,idnumber == 11并使用来计算condition。但是,如果整个字典中没有任何字典idnumber == 11,则需要继续 下一个 字典。

这是我的尝试:

for id, idnumber in A.iteritems():
    if 11 in idnumber.keys(): 
       calculate = ......
    else:
       break

问题答案:

你近了

idnum = 11
# The loop and 'if' are good
# You just had the 'break' in the wrong place
for id, idnumber in A.iteritems():
    if idnum in idnumber.keys(): # you can skip '.keys()', it's the default
       calculate = some_function_of(idnumber[idnum])
       break # if we find it we're done looking - leave the loop
    # otherwise we continue to the next dictionary
else:
    # this is the for loop's 'else' clause
    # if we don't find it at all, we end up here
    # because we never broke out of the loop
    calculate = your_default_value
    # or whatever you want to do if you don't find it

如果您需要知道11内部dicts中有多少个作为键,则可以:

idnum = 11
print sum(idnum in idnumber for idnumber in A.itervalues())

之所以可行,是因为每个密钥只能进入dict一次,因此您只需测试密钥是否退出即可。in返回TrueFalse等于10,因此sum是的出现次数idnum



 类似资料:
  • 问题内容: 搜索一个值并获取父词典名称(键): 在以上字典中,我需要搜索类似的值:。其中,字典中没有任何值重复。如何搜索?因此它应该返回字典中的父键。 请注意 :解决方案应在 未修改的情况下 适用 于 Python 2.7和Python 3.3。 问题答案: 这是对嵌套dict的迭代遍历,还可以跟踪导致特定点的所有键。因此,一旦您在字典中找到正确的值,您就已经具有获取该值所需的键。 如果将以下代码

  • 问题内容: 我正在尝试拼合嵌套的字典: 我想显示列表中的所有值:[4、6、3、23、3、45、2、0、6、1、2、3,…,2、10、8] 我的第一个想法是这样做: 虽然我得到了错误。我很乐意提供处理技巧。 问题答案: 您可以如下使用简单的递归函数。

  • 问题内容: 我正在尝试实现一个程序,该程序将接受用户输入,将该字符串拆分为标记,然后在字典中搜索该字符串中的单词。我解析的字符串的目标是使每个标记都成为英语单词。 例如: 我目前有这段代码,可以完成所有工作,直到所需的输出部分为止: 我知道有更好的方法来存储字典(例如,二进制搜索树或哈希表),但无论如何我都不知道如何实现。 我坚持如何实现一种方法,该方法将检查拆分字符串以查看每个段是否都是词典中的

  • 问题内容: 我对ES还是相当陌生,并正在将其用于我的新项目。首先,我为客户提供了一个简单的映射,其中包含名字和姓氏以及付款信息对象列表。如果我在SQL中执行此操作,那将类似于客户表和具有1:许多关系的付款信息表。 这是我要执行的操作的一个简单示例:https : //gist.github.com/anonymous/6109593 我希望根据payInfos嵌套数组中的任何匹配项找到任何客户,即

  • 在给定嵌套字典的情况下,如何构建二叉树?理想情况下,我希望访问根,然后以规则的深度优先或广度优先方式遍历树。 在从嵌套字典构建时间或空间方面的树时,我并不非常关心效率,所以我不介意在这个过程中使用额外的数据结构。我的主要关注点是一个全面而直观的解决方案。我现在不知道从哪里开始,所以非常感谢任何帮助。 这是二叉树的样子:

  • 问题内容: 我如何在mongodb文档中嵌套文档的地方搜索文档。例如,我有一组私人消息。每条私人消息都有两个嵌套文档- 一个代表发送用户,另一个代表接收使用。两个嵌套文档的格式均为- userID:34343,名称:Joe Bloggs 我希望能够搜索用户发送的所有邮件(例如,搜索发件人用户的嵌套文档)。 我正在使用Java驱动程序。我是否需要创建一个代表嵌套文档的DBObject? 谢谢 问题答