Python 到达字典中的元素类型列表及其操作
我一直在问一个关于从由列表组成的字典中获取元素的问题。这里的任务是从ids列表中获取唯一值,答案应该是:Python 到达字典中的元素类型列表及其操作,python,python-3.x,list,dictionary,duplicates,Python,Python 3.x,List,Dictionary,Duplicates,我一直在问一个关于从由列表组成的字典中获取元素的问题。这里的任务是从ids列表中获取唯一值,答案应该是:[213,15,54,119,98,35]。我知道我应该使用.intersection(set),但是,我花了很多时间试图从这个字典中剪切数据,使它们看起来像set ids = {'user1': [213, 213, 213, 15, 213], 'user2': [54, 54, 119, 119, 119], 'user3': [213, 98, 98,
[213,15,54,119,98,35]
。我知道我应该使用.intersection(set)
,但是,我花了很多时间试图从这个字典中剪切数据,使它们看起来像set
ids = {'user1': [213, 213, 213, 15, 213],
'user2': [54, 54, 119, 119, 119],
'user3': [213, 98, 98, 35]}
我只有这个,但我太紧张了,看不到任何解决办法,这就是为什么我请求帮助
for items in ids.items():
sets=set(items[1])
print(sets)
获取字典值,用展开结果嵌套列表,并构建一个
集
:
from itertools import chain
set(chain.from_iterable(ids.values()))
#{15, 35, 54, 98, 119, 213}
您可以使用
|
联合运算符
out=set()
for val in ids.values():
out=out|set(val)
list(out)
# [15, 35, 54, 98, 119, 213]
或者您可以使用union
方法
out=set() #Suggested by @schwobaseggl
for val in ids.values():
out=out.union(val)
集合理解
{i for val in ids.values() for i in val}
如果使用
union
方法,则无需将val
转换为setOh。我建议使用相同的set理解答案。我没看到你也这么做。我将删除我的答案。@RoadRunner实际上我们两人同时发布了它。。)@Ch3steR不使用sum
连接列表。它有二次复杂性。@RoadRunner我也投票决定关闭它,因为它是你建议的复制品。