试图在列表中找到一组词典。你知道吗
假设我有以下词典列表:
rm_dict = [{'name':'rick','subject':'adventure time mortttty buugh','body':['wubba lubba dub dubbb motha f*&^%!', 'morty get over here!']},
{'name':'rick','subject':'adventure time mortttty buugh','body':['wubba lubba dub dubbb motha f*&^%!', 'morty get over here!']},
{'name':'morty','subject':'re:adventure time mortttty buugh','body':['youre drunk rick!', 'I'm going to get mom', 'you always do this']}]
试着set
,我得到了一个错误。你知道吗
set(rm_dict)
我获取消息/电子邮件的正文,因为我将使用它来定义为unique,并创建所有电子邮件正文的列表,然后我将为set(tuple())
等创建一个生成器。。你知道吗
list_of_body = [x['body'] for x in rm_dict]
>>[['wubba lubba dub dubbb motha f*&^%!'],
['wubba lubba dub dubbb motha f*&^%!'],
['youre drunk rick!']]
[list(item) for item in set(tuple(row) for row in list_of_body)]
>>[['wubba lubba dub dubbb motha f*&^%!'], ['youre drunk rick!']]
这成功地从list_of_body
中获得了唯一的主体,但是我想要原始列表中的整个字典。你知道吗
您的错误消息告诉您一些重要的信息:字典或列表都不是可哈希的,因此不能用作集合的成员。解决这个问题的一种方法是使用数据中电子邮件正文的第0个元素
str
。你知道吗您可以基于列表的一个键“uniqify”列表:
这是另一种形式,没有理解力:
集合项必须是可哈希的,而dict不是。您可以使用
pickle
序列化所有dict,然后使用set
获取唯一项,最后将它们反序列化回dict:这将输出:
相关问题 更多 >
编程相关推荐