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

    1. 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)

    1. a1.keys():得到a1字典的key,一set格式;
    2. a1.keys() & a2.keys() & a3.keys() & a4.keys():取4个集合的公共元素;
    3. 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)

    1. b1 = map(dict.keys, [a1, a2, a3, a4]):以集合形式取每个字典的keys;
  • 相关阅读:
    Lucene in action 笔记 case study
    关于Restful Web Service的一些理解
    Lucene in action 笔记 analysis篇
    Lucene in action 笔记 index篇
    Lucene in action 笔记 term vector
    Lucene in action 笔记 search篇
    博客园开博记录
    数论(算法概述)
    DIV, IFRAME, Select, Span标签入门
    记一个较困难的SharePoint性能问题的分析和解决
  • 原文地址:https://www.cnblogs.com/volcao/p/8727806.html
Copyright © 2020-2023  润新知