Python - 检查函数参数是否为dict并具有值

时间:2017-08-24 10:14:40

标签: python

这里我有以下功能列表

def prdata(somelist):
    if all(x != None for x in list1.values()): 
    #check list have values 
    #but gives me error for list1 AttributeError: 'set' object has no attribute 'values'
        for x in somelist:
            print(somelist[x])
    else:
        # print("invalid dict")

我的输入可能会设置或如下所示

list1 = {"a", "b", "c"}
prdata(list1)

list2 = {"a": 1, "b": 2, "c": 3}
prdata(list1)

如何检查内部功能并引发正确的错误

3 个答案:

答案 0 :(得分:0)

list1是一个集合而不是字典。要测试集合中的成员资格,只需在list1"中使用" x。

答案 1 :(得分:0)

list1设置为list2是字典

您需要在list1的情况下更改代码,如下所示 -

list1 = {"a", "b", "c"}
all(x != None for x in list1)

返回True

答案 2 :(得分:0)

你的代码

list1 = {"a", "b", "c"}

这不是列表也不是字典。这是set

all(x != None for x in list1.values())

集没有值方法。也许你可以直接迭代set元素。