问题5:如何快速找到多个字典中的公共键(key)
方法一:for in循环
from random import randint, sample
a1 = {k; randint(1, 4) for k in 'abcdefg'}
a2 = {k; randint(1, 4) for k in 'abcdefg'}
a3 = {k; randint(1, 4) for k in 'abcdefg'}
a4 = {k; randint(1, 4) for k in 'abcdefg'}
r = []
for x in a1:
if x in a2 and x in a3 and x in a4:
r.append(x)
print(r)
- randint(1, 4):从1~4间随机取一个数;
方法二:利用集合的交集操作
from random import randint, sample
a1 = {k; randint(1, 4) for k in 'abcdefg'}
a2 = {k; randint(1, 4) for k in 'abcdefg'}
a3 = {k; randint(1, 4) for k in 'abcdefg'}
a4 = {k; randint(1, 4) for k in 'abcdefg'}
a = a1.keys() & a2.keys() & a3.keys() & a4.keys()
print(a)
- a1.keys():得到a1字典的key,一set格式;
- a1.keys() & a2.keys() & a3.keys() & a4.keys():取4个集合的公共元素;
- a为一个集合(set)
方法三:使用map即reduce(用于求n个字典的公共key)
from random import randint, sample
from functools import reduce
a1 = {k; randint(1, 4) for k in 'abcdefg'}
a2 = {k; randint(1, 4) for k in 'abcdefg'}
a3 = {k; randint(1, 4) for k in 'abcdefg'}
a4 = {k; randint(1, 4) for k in 'abcdefg'}
b1 = map(dict.keys, [a1, a2, a3, a4])
b2 = reduce(lambda a ,b: a & b, b1)
print(b2)
- b1 = map(dict.keys, [a1, a2, a3, a4]):以集合形式取每个字典的keys;
问题5:如何快速找到多个字典中的公共键(key)的更多相关文章
- 5、如何快速找到多个字典中的公共键(key) 6 如何让字典保持有序 7 如何实现用户的历史记录功能(最多n条)
5.如何快速找到多个字典中的公共键(key) from random import randint,sample #随机取数 # a = sample("ABCDEF",randi ...
- 如何快速找到多个字典中的公共键(key)
from random import randint, sample #sample随机取样 d1 = {k: randint(1, 4) for k in sample('abcdefgh', ra ...
- python数据结构-如何快速找到多个字典中的公共键
如何快速找到多个字典中的公共键 问题举例 统计每轮都进球的球员: 第1轮{‘tom’:1, 'meixi':2} 第2轮{‘coco’:3, 'meixi':4, 'marton':2} 第3轮{'c ...
- 如何快速查找到多个字典中的公共键(Key)---Python数据结构与算法相关问题与解决技巧
如何快速查找到多个字典中的公共键(Key)-? 实际案例: 西班牙足球甲级联赛,每轮球员进球统计: 第1轮: { '苏亚雷斯':1,'梅西':2,'本泽马':1,...} 第2轮: { '苏亚雷斯 ...
- Python强化训练笔记(五)——找出多个字典中的公共键
在这个问题中,我们期望得到的结果是找到这三轮比赛中,每轮都进球的球员都有谁.下面用python来模拟一下,先生成一批数据: >>> from random import randin ...
- python实例:快速找出多个字典中的公共键
1.生成随机字典 # 从abcdefg 中随机取出 3-6个,作为key, 1-4 的随机数作为 value s1 = {x : randint(1, 4) for x in sample('abcd ...
- Python3基础 dict keys+values 循环打印字典中的所有键和值
Python : 3.7.0 OS : Ubuntu 18.04.1 LTS IDE : PyCharm 2018.2.4 Conda ...
- 在robotframework里面,怎么在已有的字典中加一个键值对呢
- 38-python基础-python3-检查字典中是否存在键或值
in 和 not in 操作符 请注意, 在前面的例子中,‘name’ in spam 本质上是一个简写版本.相当于'name' in spam.keys()
随机推荐
- 我的Android进阶之旅------>如何获取Android控件的宽和高
本文转载于:http://blog.csdn.net/johnny901114/article/details/7839512 我们都知道在onCreate()里面获取控件的高度是0,这是为什么呢?我 ...
- Virtualbox报错------> VirtualBox虚拟机下鼠标不正常的解决方法
在Virtualbox虚拟机下,突然发现鼠标使用不正常.出现2个鼠标,一个是Ubuntu主机下面的鼠标,一个是Window7下的鼠标,但是Win7下的鼠标不可以看得到,但是点击鼠标左右键可以看到有反应 ...
- JVM性能优化, Part 3 垃圾回收
ImportNew注:本文是JVM性能优化 系列-第3篇-<JVM性能优化, Part 3 —— 垃圾回收> 第一篇 <JVM性能优化, Part 1 ―― JVM简介 > 第 ...
- IDEA报错: Invalid bound statement (not found): com.test.mapper.UserMapper.selectByPrimaryKey(转发:https://www.cnblogs.com/woshimrf/p/5138726.html)
学习mybatis的过程中,测试mapper自动代理的时候一直出错,在eclipse中可以正常运行,而同样的代码在idea中却无法成功.虽然可以继续调试,但心里总是纠结原因.百度了好久,终于找到一个合 ...
- R语言数据管理(二):模式与类
最常用的4种数据类型是数值型(numeric).字符型(character)(字符串).日期型(Date)或POSIXct(基于日期的).逻辑型(logical)(TRUE或FALSE). 变量中 ...
- Python socket TCPServer Demo
#coding:utf-8 from SocketServer import TCPServer,BaseRequestHandler import traceback class MyBaseReq ...
- Data Structure Linked List: Write a function to get the intersection point of two Linked Lists.
http://www.geeksforgeeks.org/write-a-function-to-get-the-intersection-point-of-two-linked-lists/ 第一第 ...
- 为jquery添加扩展标准思路
jquery扩展分为对象扩展和jquery本身类扩展: 对象扩展: (function($){ $.fn.abc = function(){ console.log($(this).get(0)); ...
- mysql管理工具之pt-heartbeat
之前我一直用Seconds_behind_master来衡量主从的延迟,今天看到文档,才觉得多么不可靠!以下是官方文档的描述: In essence, this field measures the ...
- Luogu-2657 [SCOI2009]windy数
很少做数位\(dp\)的题,做道题学习一下吧. 记忆化搜索,\(f[10][10][2][2]\)分别记录当前位置,上一位数,是否有前导零和是否有大小上限. 题目要满足相邻两个数相差不小于2,如果有前 ...