验证并删除字典条目

时间:2015-11-17 19:26:16

标签: python dictionary

我需要检查python字典中的一个特定值。

以下是我正在使用的数据示例:

考虑名为record_set的词典。

它由以下值组成,每个人都是不同的并且是单独的条目。

这就是这三个是在迭代循环时创建的不同字典。

{u'name': u'9.8.10.5.in-addr.arpa.',u'domain_id': u'5e18999d'}

{u'name': u'5.6.3.1.in-addr.arpa.',u'domain_id': u'5e18999d'}

{u'name': u'6.5.4.8.in-addr.arpa.',u'domain_id': u'5e18999d'}

现在我需要的是从字典中查找特定值,考虑“6.5.4.8.in-addr.arpa。”。

如果字典中没有值,则应丢弃特定字典。(不应返回)

例如,结果应如下:

{u'name': u'6.5.4.8.in-addr.arpa.',u'domain_id': u'5e18999d'}

应丢弃其他两个条目。

我认为现在很清楚。

2 个答案:

答案 0 :(得分:1)

如果我正确理解你的问题,你需要这样的东西:

Last_digit(2^n) = Last_digit(2^(n%4))

如果您确实想要丢弃列表中的其他词典,您可以这样做:

records = [{u'name': u'9.8.10.5.in-addr.arpa.',u'domain_id': u'5e18999d'},
{u'name': u'5.6.3.1.in-addr.arpa.',u'domain_id': u'5e18999d'},
{u'name': u'6.5.4.8.in-addr.arpa.',u'domain_id': u'5e18999d'}]

for item in records:
    if item['name'] == '5.6.3.1.in-addr.arpa.':
        print item

链接:http://ideone.com/bXhnlr

答案 1 :(得分:0)

我会使用条件集描述符:

records = [{u'name': u'9.8.10.5.in-addr.arpa.',u'domain_id': u'5e18999d'},
           {u'name': u'5.6.3.1.in-addr.arpa.',u'domain_id': u'5e18999d'},
           {u'name': u'6.5.4.8.in-addr.arpa.',u'domain_id': u'5e18999d'}]
name = u'9.8.10.5.in-addr.arpa.'
matchingRecords = [item for item in records if item[u'name'] == name]

matchingRecords将包含:[{'domain_id': '5e18999d', 'name': '9.8.10.5.in-addr.arpa.'}]