比较来自世界各地的卖家的域名和 IT 服务价格

获取所附列表中的唯一值 python

我有一个投资的名单 /list of list/, 我想删除重复的,但我弄错了。 这是一个例子:


images = [
[
{
"image_link": "1969.1523.001.aa.cs.jpg",
"catalogue_number": "1969.1523",
"dataset_name": "marine-transportation-transports-maritimes.xml"
},
{
"image_link": "1969.1523.001.aa.cs.jpg",
"catalogue_number": "1969.1523",
"dataset_name": "railway-transportation-transports-ferroviaires.xml"
}
],
[
{
"image_link": "1969.1523.001.aa.cs.jpg",
"catalogue_number": "1969.1523",
"dataset_name": "marine-transportation-transports-maritimes.xml"
},
{
"image_link": "1969.1523.001.aa.cs.jpg",
"catalogue_number": "1969.1523",
"dataset_name": "railway-transportation-transports-ferroviaires.xml"
}
],
[
{
"image_link": "1969.1523.001.aa.cs.jpg",
"catalogue_number": "1969.1523",
"dataset_name": "marine-transportation-transports-maritimes.xml"
},
{
"image_link": "1969.1523.001.aa.cs.jpg",
"catalogue_number": "1969.1523",
"dataset_name": "railway-transportation-transports-ferroviaires.xml"
}
]
]


因此,在最后一个
images

将仅包含


[
[
{
"image_link": "1969.1523.001.aa.cs.jpg",
"catalogue_number": "1969.1523",
"dataset_name": "marine-transportation-transports-maritimes.xml"
},
{
"image_link": "1969.1523.001.aa.cs.jpg",
"catalogue_number": "1969.1523",
"dataset_name": "railway-transportation-transports-ferroviaires.xml"
}
]
]


我使用这个功能
set



set.__doc__
'set// -> new empty set object\nset/iterable/ -> new set object\n\nBuild an unor
dered collection of unique elements.'


我的杂志 trace:


list/set/images//
Traceback /most recent call last/:
File "<input/>", line 1, in <module>
TypeError: unhashable type: 'list'


要使它更容易,如何在此示例中删除所有重复项


example = [ [{'a':1, 'b':2}, 'w', 2], [{'a':1, 'b':2}, 'w', 2] ]
#result
#example = [[{'a':1, 'b':2}, 'w', 2] ]


</module>
已邀请:

快网

赞同来自:

似乎你想要这样的东西,


>>> example = [ [{'a':1, 'b':2}, 'w', 2], [{'a':1, 'b':2}, 'w', 2] ]
>>> l = []
>>> for i in example:
if i not in l:
l.append/i/


>>> l
[[{'b': 2, 'a': 1}, 'w', 2]]

知食

赞同来自:

容器
set


dict

依靠数据散列。 其他可变容器,如
list

/为自己
set


dict

/, 不能哈希。 他们可以稍后改变 /改变/, 因此,恒定值 hash 这没有道理。

但是您可以将所有数据转换为 /嵌套/ Cortays最后
set

. 只要
tuple

-这是

不可改变的

容器 , 你的数据耗尽了 /

线时间

/, 他可以工作。 这是您特殊场合的令人不快的单行程。

图片

, 谁做出了他的事:


images_Set = set/[tuple/[tuple/sorted/image_dict.items//// 
for image_dict in inner_list]/ for inner_list in images]/





print/images_set/


打印


{///'catalogue_number', '1969.1523'/,
/'dataset_name', 'marine-transportation-transports-maritimes.xml'/,
/'image_link', '1969.1523.001.aa.cs.jpg'//,
//'catalogue_number', '1969.1523'/,
/'dataset_name', 'railway-transportation-transports-ferroviaires.xml'/,
/'image_link', '1969.1523.001.aa.cs.jpg'///}


EDIT

:

没有保证订单

对于功能
items

词典。 所以我还添加了
sorted

, 确保订单。

三叔

赞同来自:

您可以使用
compiler.ast.flatten

, 要平滑列表,然后将字典转换为散列对象以压缩集合,然后转换回 dict, 只有一个对列表的理解 :


>>> from compiler.ast import flatten
>>> [dict/item/ for item in set/tuple/i.items/// for i in flatten/images//]
[{'image_link': '1969.1523.001.aa.cs.jpg', 'catalogue_number': '1969.1523', 'dataset_name': 'marine-transportation-transports-maritimes.xml'}, {'image_link': '1969.1523.001.aa.cs.jpg', 'catalogue_number': '1969.1523', 'dataset_name': 'railway-transportation-transports-ferroviaires.xml'}]

要回复问题请先登录注册