Python 获取两个列表的差异,其中包含dict
我试图使用Python 获取两个列表的差异,其中包含dict,python,python-3.x,Python,Python 3.x,我试图使用difference(),但我总是得到TypeError:unhabable类型:“dict”。 这是我的密码: a=set(数据) b=设置(y) z=a.差值(y) 打印(z) “data”和“y”如下所示: y = [ { "name": "text1", "size": "144", "type": "f" }, { "name": "folder", "size": "8
difference()
,但我总是得到TypeError:unhabable类型:“dict”
。
这是我的密码:
a=set(数据)
b=设置(y)
z=a.差值(y)
打印(z)
“data”和“y”如下所示:
y = [
{
"name": "text1",
"size": "144",
"type": "f"
},
{
"name": "folder",
"size": "832",
"sub": [
{
"name": "text2",
"size": "522",
"type": "f"
}
],
"type": "c"
}
]
输出应返回差异(名称、大小以及是否存在差异)。从您的描述中仍然不清楚您试图实现的目标 但是我假设您想找出
数据
和y
之间的区别,但我不确定您为什么要在这里使用设置
。您的TypeError
实际上发生在第一行,因为此目录列表无法添加到集合中。不过,这样做也行,只需在这里列出:
>a=[
{
“名称”:“text1”,
“大小”:“144”,
“类型”:“f”
},
{
“名称”:“文件夹”,
“大小”:“832”,
“sub”:[
{
“名称”:“text2”,
“大小”:“522”,
“类型”:“f”
}
],
“类型”:“c”
}
]
>>>b=[
{
“名称”:“text1”,
“大小”:“144”,
“类型”:“f”
},
{
“名称”:“text2”,
“大小”:“288”,
“类型”:“f”
},
]
>>>[如果项目不在a中,则b中项目的项目]
>>> [
{
“名称”:“text2”,
“大小”:“288”,
“类型”:“f”
}
]
旧答案: 通常,在Python中计算集之间的差异如下:
y = [
{
"name": "text1",
"size": "144",
"type": "f"
},
{
"name": "folder",
"size": "832",
"sub": [
{
"name": "text2",
"size": "522",
"type": "f"
}
],
"type": "c"
}
]
>a=set()
>>>b=集合()
>>>a.加入(1)
>>>a.加入(2)
>>>b.add(1)
>>>b.添加(3)
>>>a-b
>>> {2}
>>>b-a
>>> {3}
>>>a.差异(b)
>>> {2}
>>>b.差异(a)
>>> {3}
欢迎来到stackoverflow。感觉好像丢失了一些信息,或者其中可能有一些错误。例如,我不明白数据是什么,为什么你说“a”和“b”看起来像“y”。请退房