亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Python查找多個(gè)字典公共鍵key的方法

 更新時(shí)間:2022年04月29日 11:29:47   作者:AllardZhao  
這篇文章主要介紹了Python查找多個(gè)字典公共鍵key案例,文章主要通過案例分享展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下

1、如何快速找到多個(gè)字典中的公共鍵(key)

實(shí)際案例:

西班牙足球甲級聯(lián)賽,每輪球員進(jìn)球統(tǒng)計(jì):

  • 第一輪:{'蘇亞雷斯': 1, '梅西': 2, '本澤馬': 1, 'C羅': 3, ...}
  • 第二輪:{'蘇亞雷斯': 2, 'C羅': 1, '格里絲曼': 2, '貝爾': 1, ...}
  • 第三輪:{'蘇亞雷斯': 1, '托雷斯': 2, '貝爾': 1, '內(nèi)馬爾': 1, ...}

 統(tǒng)計(jì)出前N輪,每場比賽都有進(jìn)球的球員。

注:公共鍵就是在每個(gè)字典中都出現(xiàn)的鍵。

解決方案:

利用集合(set)的交集操作

  • Step1:使用字典的keys()方法,得到一個(gè)字典keys的集合;
  • Step2:使用map函數(shù),得到所有字典的keys的集合;
  • Step3:使用reduce函數(shù),取所有字典的keys集合的交集。

2、代碼演示

from random import randint, sample?
# 隨機(jī)取樣進(jìn)球球員信息
print(sample('abcdef', randint(3, 6)))
# 字典解析產(chǎn)生每輪數(shù)據(jù)
s1 = {x: randint(1, 4) for x in sample('abcdef', randint(3, 6))}
s2 = {x: randint(1, 4) for x in sample('abcdef', randint(3, 6))}
s3 = {x: randint(1, 4) for x in sample('abcdef', randint(3, 6))}
print(s1, s2, s3)
# 方法1:
# 迭代第1輪中鍵,之后再去判斷這個(gè)key是否在s2和s3當(dāng)中,如果在就表示這個(gè)鍵是公共鍵
res = []
for k in s1:
? ? if k in s2 and k in s3:
? ? ? ? res.append(k)
print(res)
?
# 方法2:
# 獲取每一個(gè)字典中的所有key,python2為viewkeys()
print(s1.keys(), s2.keys(), s3.keys())
# 取所有集合的&交集,就是公共鍵
print(s1.keys() & s2.keys() & s3.keys())
?
# 方法3:
# 使用map得到每一輪的keys集合
print(list(map(dict.keys, [s1, s2, s3])))
?
from functools import reduce
# 使用reduce函數(shù),取每一輪的keys集合的交集
print(reduce(lambda a, b: a & b, map(dict.keys, [s1, s2, s3])))

3、快速找到多個(gè)字典中的公共鍵(key)的方法(補(bǔ)充)

方法一:for in循環(huán)

from random import randint, sample
a1 = {k: randint(1, 4) for k in 'abcdefg'}
a2 = {k: randint(1, 4) for k in 'abc123456789'}
a3 = {k: randint(1, 4) for k in 'abcinubububu'}
a4 = {k: randint(1, 4) for k in 'abc89898989'}
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間隨機(jī)取一個(gè)數(shù)

方法二:利用集合的交集操作

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個(gè)集合的公共元素;
a為一個(gè)集合(set)

方法三:使用map即reduce(用于求n個(gè)字典的公共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])  #以集合形式取每個(gè)字典的keys;

到此這篇關(guān)于Python查找多個(gè)字典公共鍵key的方法的文章就介紹到這了,更多相關(guān)Python查找key內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python requests 使用快速入門

    python requests 使用快速入門

    這篇文章主要介紹了python requests 使用快速入門教程,使用 Requests 發(fā)送網(wǎng)絡(luò)請求非常簡單,具體操作方法,大家參考下本文吧
    2017-08-08
  • Python 讀取有公式cell的結(jié)果內(nèi)容實(shí)例方法

    Python 讀取有公式cell的結(jié)果內(nèi)容實(shí)例方法

    在本篇文章里小編給大家整理的是關(guān)于Python 如何讀取有公式cell的結(jié)果內(nèi)容,需要的朋友們可以學(xué)習(xí)下。
    2020-02-02
  • Web自動化之Selenium常用操作方法大全

    Web自動化之Selenium常用操作方法大全

    Selenium是一種自動化測試工具,可以用于測試Web應(yīng)用程序,它提供了一組用于自動化Web瀏覽器進(jìn)行測試的API,下面這篇文章主要給大家介紹了關(guān)于Web自動化之Selenium常用操作方法的相關(guān)資料,需要的朋友可以參考下
    2023-06-06
  • python自動化測試之如何解析excel文件

    python自動化測試之如何解析excel文件

    這篇文章主要介紹了python自動化測試之如何解析excel文件,今天我們就把不同模塊處理excel文件的方法做個(gè)總結(jié),直接做封裝,方便我們以后直接使用,增加工作效率。,需要的朋友可以參考下
    2019-06-06
  • Python3中bytes類型轉(zhuǎn)換為str類型

    Python3中bytes類型轉(zhuǎn)換為str類型

    Python 3最重要的新特性之一是對字符串和二進(jìn)制數(shù)據(jù)流做了明確的區(qū)分。這篇文章主要介紹了Python3中bytes類型轉(zhuǎn)換為str類型的相關(guān)知識,需要的朋友可以參考下
    2018-09-09
  • python貪吃蛇游戲代碼

    python貪吃蛇游戲代碼

    這篇文章主要為大家詳細(xì)介紹了python貪吃蛇游戲代碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • Python中np.where()用法具體實(shí)例

    Python中np.where()用法具體實(shí)例

    這篇文章主要給大家介紹了關(guān)于Python中np.where()用法的相關(guān)資料,np.where()是NumPy庫中的一個(gè)函數(shù),主要用于根據(jù)條件從數(shù)組中選擇元素,文中給出了詳細(xì)的代碼示例,需要的朋友可以參考下
    2023-08-08
  • python 自動化辦公之批量修改文件名實(shí)操

    python 自動化辦公之批量修改文件名實(shí)操

    這篇文章主要介紹了python 自動化辦公之批量修改文件名實(shí)操,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-07-07
  • Python中不可錯(cuò)過的五個(gè)超有用函數(shù)

    Python中不可錯(cuò)過的五個(gè)超有用函數(shù)

    在本文中,我們用代碼詳細(xì)說明了Python中超實(shí)用的5個(gè)函數(shù)的重要作用,這些函數(shù)雖然簡單,但卻是Python中功能最強(qiáng)大的函數(shù),下面一起來看看文章的詳細(xì)介紹吧,希望對你的學(xué)習(xí)有所幫助
    2022-01-01
  • Python中的對象,方法,類,實(shí)例,函數(shù)用法分析

    Python中的對象,方法,類,實(shí)例,函數(shù)用法分析

    這篇文章主要介紹了Python中的對象,方法,類,實(shí)例,函數(shù)用法,從面向?qū)ο蟮慕嵌确治隽藢ο?方法,類,實(shí)例,函數(shù)等的使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-01-01

最新評論