如何快速找到多个字典中的公共键(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))

原文地址:https://www.cnblogs.com/wangjiale1024/p/10311151.html

时间: 2024-11-08 22:51:17

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

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

如何快速查找到多个字典中的公共键(Key)-?   实际案例: 西班牙足球甲级联赛,每轮球员进球统计: 第1轮: { '苏亚雷斯':1,'梅西':2,'本泽马':1,...} 第2轮: { '苏亚雷斯':1,'C罗':2,'剑圣':1,...} 第3轮: { '苏亚雷斯':1,'卡尔':2,'贝利':1,...} ... 统计出前N轮,每场比赛都有进球的球员 .   --N个字典中,寻找公共键的问题 -- 比较容易想到的方法: 我们的方法: 解决方案:   利用集合(set)的交集操作 ---获

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

在这个问题中,我们期望得到的结果是找到这三轮比赛中,每轮都进球的球员都有谁.下面用python来模拟一下,先生成一批数据: >>> from random import randint, sample >>> # sample是取样的意思,例如sample('abcde', 2),会在'abcde'这个字符串中随机抽样2个字符出来 >>> {x: randint(1,3) for x in sample('abcdef', randint(3, 6))

Python 字典(Dictionary) has_key()方法-判断键是否存在于字典中,如果键在字典dict里返回true,否则返回false

描述 Python 字典(Dictionary) has_key() 函数用于判断键是否存在于字典中,如果键在字典dict里返回true,否则返回false. 语法 has_key()方法语法: dict.has_key(key) 参数 key -- 要在字典中查找的键. 返回值 如果键在字典里返回true,否则返回false. 实例 以下实例展示了 has_key()函数的使用方法: #!/usr/bin/python dict = {'Name': 'Zara', 'Age': 7} pri

Python3基础 使用keys() values()和for循环打印一个字典中的所有键和值

镇场诗: 诚听如来语,顿舍世间名与利.愿做地藏徒,广演是经阎浮提. 愿尽吾所学,成就一良心博客.愿诸后来人,重现智慧清净体.------------------------------------------ code: dict1={'子':'鼠','丑':'牛','寅':'虎','卯':'兔','辰':'龙','巳':'蛇','午':'马','未':'羊','申':'猴','酉':'鸡','戌':'狗','亥':'猪'} #你会发现顺序变了 for eachKey in dict1.keys

38-python基础-python3-检查字典中是否存在键或值

in 和 not in 操作符 请注意, 在前面的例子中,‘name’ in spam 本质上是一个简写版本.相当于'name' in spam.keys() 原文地址:https://www.cnblogs.com/summer1019/p/11367997.html

Python3基础 dict keys+values 循环打印字典中的所有键和值

? python : 3.7.0 OS : Ubuntu 18.04.1 LTS IDE : PyCharm 2018.2.4 conda : 4.5.11 type setting : Markdown ? code """ @Author : 行初心 @Date : 18-9-23 @Blog : www.cnblogs.com/xingchuxin @GitHub : github.com/GratefulHeartCoder """ de

1.6 字典中的键映射多个值

body, td { font-family: 微软雅黑; font-size: 10pt; } Edit 1.6 字典中的键映射多个值 问题 实现一个字典结构,一个键可以对应多个值 解决方案 1.列表和集合 1.>>> d2.{'b': [4, 5], 'a': [1, 2, 3]}3.>>> d['b']4.[4, 5]5.>>> e={'a':{1,2,2,3},'b':{2,3,4,4}}6.>>> e7.{'b': {2,

把1到100的数字拆分成字典中的两个键值对 python

需求:把1到100的列表拆分成字典中两个键值对,k1和k2. #!/usr/bin/python num = {} all_list = [] for nu in range(1101): all_list.append(nu) for i in all_list: if i < 75: if 'k1' in num.keys(): num['k1'].append(i) else: num['k1'] = [i, ] else: if 'k2' in num.keys(): num['k2']

十四、python字典中的方法汇总

'''1.访问.修改,删除字典中的值:''' dict={'a':'11','b':'22','c':'33','d':'44'}print dict['a'],dict['d'] #访问dict['b']='abc' #修改print dict#删除del dict['c'] #删除字典中的某个值print dictdict.clear() #清空字典print dictdel dict #删除字典--------------------------------------------- 11