實際案例
德國足球甲級聯賽,每輪球員進球統計(資料為虛構):
統計出前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 ...