比较字典值和python中的键

时间:2011-09-04 11:34:56

标签: python

我有一本字典item。它有字符串作为键,值是列表,例如:

item['title'] = [u'python']
item['image'] = [u'/link/to/image']
item['link'] = [u'link to article']

我想检查任何值的长度是否为0,但链接或图像可能为空,所以我执行了以下操作:

        for key, value in item.iteritems():
            if len(value) == 0:
                if key != 'image' or key != 'link':
                    raise DropItem("Item is empty: %s" %item)                   
        return item

因此,只有当值为0并且它不是图像或键时才应删除项目。我现在的问题是这种情况不起作用。当图像或链接为空时,该项目仍会被删除。

任何想法都错了吗? (我是python的新手^^)

2 个答案:

答案 0 :(得分:5)

您将逻辑orand混淆了。例如,如果密钥为"image",请检查以下内容:

if "image" != 'image' or "image" != 'link':
#if      False        or        True:
#if True:

相反,你想要

if key != 'image' and key != 'link':

或者,更容易阅读:

if key not in ('image', 'link'):

答案 1 :(得分:4)

你应该:

if key != 'image' and key != 'link':

,因为

 if key != 'image' or key != 'link':

永远是真的