zoukankan      html  css  js  c++  java
  • python基础一 ------如何获取多个字典相同的键

    需求:

    足球赛第一场进去统计  {"A":3,"B":2,"C":1}
    足球赛第二场进去统计  {"A":3,"C":1}
    足球赛第二场进去统计  {"A":2,"B":2}
    统计每场都有进球的人---->找到多个字典的公共建

    解决方法:

    一:普通方法
    二:集合
    三:map(),reduce(),当N场比赛时

     1 from random import randint,sample
     2 #先生成随机的字典s1,s2,s3,
     3 #sample从给定的字符串中选取后面给定的数个,组成列表
     4 #sample("ABCFD",3) 
     5 #['A','C']
     6 s1 = {k:randint(3,6) for k in sample("ABCDEF",randint(1,5))}
     7 s2 = {k:randint(3,6) for k in sample("ABCDEF",randint(1,5))}
     8 s3 = {k:randint(3,6) for k in sample("ABCDEF",randint(1,5))}
     9 print(s1)
    10 print(s2)
    11 print(s3)
    12 #方法一:
    13 print("-------------------方法一-----------------")
    14 
    15 coment = []
    16 for i in s1:
    17     if i in s2 and i in s3:
    18         coment.append(i) 
    19 print(coment)
    20 print("-------------------方法二-----------------")
    21 #方法二: 将字典转化为集合(python2 dict.viewkeys(),3中 dict.key()),然后取并集
    22 k1 = s1.keys()
    23 k2 = s2.keys()
    24 k3 = s3.keys()
    25 coment = k1&k2&k3
    26 print(coment)
    27 print("-------------------方法三-----------------")
    28 #当N个时
    29 from functools import reduce
    30 x = map(lambda s:s.keys(),[s1,s2,s3])
    31 #reduce 用法,必须接受俩参数进行操作,之后将前面两个参数和从后面的列表中一个一个取出进行之前相同的操作
    32 coment = reduce(lambda x,y:x&y,x)
    33 print(coment)
  • 相关阅读:
    uva 11997 K Smallest Sums
    uvalive 3135 Argus
    React-Redux填坑
    fetch方法
    react 学习前期用到的插件
    Redux:with React(一)
    Redux:data flow
    Redux:store
    Redux:Reducers
    Redux:action
  • 原文地址:https://www.cnblogs.com/ruoniao/p/6836080.html
Copyright © 2011-2022 走看看