gpt4 book ai didi

python - 列表/字典数据操作 - 删除重复项

转载 作者:太空宇宙 更新时间:2023-11-03 18:44:47 25 4
gpt4 key购买 nike

在进行了一些网络抓取并合并结果之后,我得到了一个字典列表。其中一个键(标题)是一个列表列表。

 thelist = [{"name":"a name", "titles":[["foo","bar", ... ],["foo","baz",["..."], ... ]]},
{"name":"another name", "titles":[["foo","bar", ... ],["foo","baz",["..."], ... ]]}, ... ]

目标是消除每本词典中标题列表中出现多个列表的标题,并将标题列表列表替换为单个标题列表(不重复)。

我现在编写的代码可以正确访问列表列表中的所有项目,但我在实际消除重复项方面遇到困难。

match = ""
for dicts in thelist:
for listoftitles in dicts['titles']:
for title in listoftitles:
title = match
for title in listoftitles:
if match == title:
print title
#del title

看起来匹配永远不等于标题中的值。我尝试过更改循环的嵌套,但到目前为止没有效果。我在某个地方迷路了,我不知道还能尝试什么。非常感谢任何建议。

最佳答案

获取不重复的列表的惯用方法是list(set(some_iterable))

放入列表理解,我们得到

thelist = [{'name': 'a name', 'titles': [['foo','bar'],['foo','baz']]}]

print [
{
'name': d['name'],
'titles': list(set(title for lst in d['titles'] for title in lst))
}
for d in thelist
]

打印

[{'name': 'a name', 'titles': ['baz', 'foo', 'bar']}]

关于python - 列表/字典数据操作 - 删除重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19758772/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com