gpt4 book ai didi

Python 3 - 多个字典键的交集

转载 作者:太空宇宙 更新时间:2023-11-03 11:26:59 24 4
gpt4 key购买 nike

下面是我的代码,任何人都可以帮助我使用 python 3 内置库函数优化过程?

Dict1 = {'ky1':1, 'ky2':2,'ky_3':3}
Dict2 = {'ky1':4, 'ky2':5,'ky_4':6}
Dict3 = {'ky2':7, 'ky3':8,'ky_5':9}
D = [Dict1,Dict2,Dict3]
Keys_list = []
for i in D:
tmp = list(i.keys())
Keys_list.append(tmp)
Output = list(set.intersection(*map(set,Keys_list)))

我的Dict1、Dict2、Dict3是大字典
谢谢

最佳答案

如果您只想要所有字典中所有键的列表,您可以使用 dict.viewkeys()(对于 Python 2.7)或 dict.keys() 在 Python 3.x 中,获取字典 View 对象,然后将它们相交。

Python 3.x 示例 -

>>> Dict1 = {'ky1':1, 'ky2':2,'ky_3':3}
>>> Dict2 = {'ky1':4, 'ky2':5,'ky_4':6}
>>> Dict3 = {'ky2':7, 'ky3':8,'ky_5':9}
>>>
>>> Dict1.keys() & Dict2.keys() & Dict3.keys()
{'ky2'}
>>> list(Dict1.keys() & Dict2.keys() & Dict3.keys())
['ky2']

对于 Python 2.7,使用 Dict1.viewkeys() 等,而不是 .keys()


如果您有一个字典列表,使用 functools.reduce() 函数在一行中执行此操作的一种方法是 -

>>> ld = [{'ky1':1, 'ky2':2,'ky_3':3},{'ky1':4, 'ky2':5,'ky_4':6},{'ky2':7, 'ky3':8,'ky_5':9}]
>>> res = list(reduce(lambda x, y: x & y.keys() , ld))
>>> res
['ky2']

类似的逻辑,使用for循环——

>>> ld = [{'ky1':1, 'ky2':2,'ky_3':3},{'ky1':4, 'ky2':5,'ky_4':6},{'ky2':7, 'ky3':8,'ky_5':9}]
>>> res = ld.pop()
>>> for d in ld:
... res = res & d.keys()
...
>>> list(res)
['ky2']

关于Python 3 - 多个字典键的交集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31845752/

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