如何快速找到多个字典中的公共键(1.4)

Posted jwang106

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何快速找到多个字典中的公共键(1.4)相关的知识,希望对你有一定的参考价值。



d1 = {‘a‘: 1, ‘b‘: 2, ‘c‘: 3, ‘d‘: 4}
d2 = {‘a‘: 1, ‘b‘: 2, ‘c‘: 3, ‘e‘: 5}
d3 = {‘a‘: 1, ‘b‘: 2, ‘c‘: 3, ‘f‘: 6}

法1. 遍历

res = []
for k in d1:
    if k in d2 and k in d3:
        res.append(k)
print(res)

法2. 集合交集

>>> d2.keys?
# Docstring: D.keys() -> a set-like object providing a view on D‘s keys
# Type:      builtin_function_or_method
>>> d1.keys() & d2.keys() & d3.keys()
{‘a‘, ‘b‘, ‘c‘}

法3. map + reduce 函数

# map用法: map(func, list), 也就是对list中的每一个值做func操作
l1 = range(5)
print(list(map(lambda x: x**2, l1)))

# reduce用法: reduce把一个函数作用在一个序列[x1, x2, x3...]上,这个函数必须接收两个参数,
# reduce把结果继续和序列的下一个元素做累积计算,其效果就是:reduce(f, [x1, x2, x3, x4]) = f(f(f(x1, x2), x3), x4)
from functools import reduce
print(reduce(lambda x, y: x*10 +y, [1, 2, 3, 4]))

# map 函数和 reduce , 不会用的看后边
map(dict.keys, [d1, d2, d3])
print(reduce(lambda a, b: a&b, map(dict.keys, [d1, d2, d3])))

# reduce小练习: str to int
str1 = ‘23456‘
def str2int(s):
    def char2num(c):
        return {‘0‘: 0, ‘1‘: 1, ‘2‘: 2, ‘3‘: 3, ‘4‘: 4, ‘5‘: 5, ‘6‘: 6, ‘7‘: 7, ‘8‘: 8, ‘9‘: 9}[c]
    from functools import reduce
    return reduce(lambda x, y: x*10 + y, map(char2num, s))
print(str2int(str1))



以上是关于如何快速找到多个字典中的公共键(1.4)的主要内容,如果未能解决你的问题,请参考以下文章

如何快速查找到多个字典中的公共键(Key)---Python数据结构与算法相关问题与解决技巧

Python强化训练笔记——找出多个字典中的公共键

如何在字典列表中找到公共键的最小/最大值?

经验总结 如何找到多个字典的公共健(key)

如何将嵌套字典列表与它们的值中的公共键相加? [复制]

如何比较字典值中的多个数组,并将每个数组元素的字典键映射到新数组/列表中