如何快速找到多個字典中的公共鍵 key

2021-08-04 04:45:01 字數 1109 閱讀 1892

實際案例

德國足球甲級聯賽,每輪球員進球統計(資料為虛構):

統計出前n輪,每場比賽都有進球的球員。

首先,我們建立乙個字典模擬球員進球統計,**如下:

# -*- coding: utf-8 -*-

from random import randint, sample

# 第一輪

d1 =

# 第二輪

d2 =

# 第三輪

d3 =

這時,我們有沒有想到乙個簡單方法,找到這三個字典中的公共鍵呢?相信大家都會想到這個辦法:從第乙個字典中取出每個鍵,遍歷第

二、三個字典,若鍵相同,則將其新增至列表;反之,繼續遍歷,直至第乙個字典的鍵全部取出。該方法的**如下:

# -*- coding: utf-8 -*-

from random import randint, sample

# 第一輪

d1 =

# 第二輪

d2 =

# 第三輪

d3 =

# 用於存放公共鍵

res =

for k in d1:

if k in d2 and d3:

print res

其執行結果為:

['b', 'f']

使用字典的viewkeys()得到乙個字典的keys的集合;

使用map函式,得到所有字典的keys的集合;

使用reduce函式,取得所有字典的keys的集合的交集。

**如下:

# -*- coding: utf-8 -*-

from random import randint, sample

# 第一輪

d1 =

# 第二輪

d2 =

# 第三輪

d3 =

print reduce(lambda a, b: a & b, map(dict.viewkeys, [d1, d2, d3]))

結果如下:

python快速找到多個字典中的公共鍵

第一輪 第二輪 統計出錢n輪,每場比賽都有進球的球員 方法一 效率低 隨機產生進球成員 隨機取樣 s sample abcdefg randint 3,6 print s s1 s2 s3 print s1 print s2 print s3 獲取公共鍵 res res for k in s1 if...

慕課網 如何快速找到多個字典中的公共鍵

西班牙足球甲級聯賽,每輪球員進球統計 第一輪 第二輪 第三輪 統計出前n輪,每場比賽都有進球的球員 from functools import reduce from random import randint,sample def main sample隨機取樣 a sample abcdefg ...

Python3快速找到多個字典的公共鍵

首先生成多個隨機字典 from random import randint,sample s1 s2 s3 print s1 print s2 print s3 輸出 使用for迴圈 res for k in s1 if k in s2 and k in s3 print res 輸出 e c d ...