最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

實(shí)際案例:

西班牙足球甲級(jí)聯(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輪,每場(chǎng)比賽都有進(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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • pandas?數(shù)據(jù)透視和逆透視的實(shí)現(xiàn)

    pandas?數(shù)據(jù)透視和逆透視的實(shí)現(xiàn)

    本文介紹了pandas?數(shù)據(jù)透視和逆透視的實(shí)現(xiàn),包含pivot()方法透視及pivot_table()方法逆透視,文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-12-12
  • 利用python繪制帶有時(shí)間線的柱狀圖

    利用python繪制帶有時(shí)間線的柱狀圖

    這篇文章主要為大家詳細(xì)介紹了如何使用python繪制出帶有時(shí)間線的柱狀圖,文中的示例代碼講解的非常詳細(xì),具有一定的學(xué)習(xí)與借鑒價(jià)值,需要的可以參考一下
    2023-07-07
  • Python利用FFT進(jìn)行簡(jiǎn)單濾波的實(shí)現(xiàn)

    Python利用FFT進(jìn)行簡(jiǎn)單濾波的實(shí)現(xiàn)

    今天小編就為大家分享一篇Python利用FFT進(jìn)行簡(jiǎn)單濾波的實(shí)現(xiàn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • PageFactory設(shè)計(jì)模式基于python實(shí)現(xiàn)

    PageFactory設(shè)計(jì)模式基于python實(shí)現(xiàn)

    這篇文章主要介紹了PageFactory設(shè)計(jì)模式基于python實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-04-04
  • Python?如何引用不確定的函數(shù)

    Python?如何引用不確定的函數(shù)

    在Python中,引用不確定的函數(shù)通常意味著我們可能在運(yùn)行時(shí)才知道要調(diào)用哪個(gè)函數(shù),或者我們可能想根據(jù)某些條件動(dòng)態(tài)地選擇不同的函數(shù)來執(zhí)行,下面給大家分享Python?如何引用不確定的函數(shù),感興趣的朋友跟隨小編一起看看吧
    2024-07-07
  • Python搭建代理IP池實(shí)現(xiàn)檢測(cè)IP的方法

    Python搭建代理IP池實(shí)現(xiàn)檢測(cè)IP的方法

    這篇文章主要介紹了Python搭建代理IP池實(shí)現(xiàn)檢測(cè)IP的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • Python 字符串操作(string替換、刪除、截取、復(fù)制、連接、比較、查找、包含、大小寫轉(zhuǎn)換、分割等)

    Python 字符串操作(string替換、刪除、截取、復(fù)制、連接、比較、查找、包含、大小寫轉(zhuǎn)換、分割等)

    這篇文章主要介紹了Python 字符串操作(string替換、刪除、截取、復(fù)制、連接、比較、查找、包含、大小寫轉(zhuǎn)換、分割等),需要的朋友可以參考下
    2018-03-03
  • python模擬登錄百度代碼分享(獲取百度貼吧等級(jí))

    python模擬登錄百度代碼分享(獲取百度貼吧等級(jí))

    python模擬登錄百度,實(shí)現(xiàn)了登錄并讀取百度關(guān)注貼吧列表,百度登錄還是有點(diǎn)麻煩的,由于用的ssl,所以要先獲取token,然后再登錄,這個(gè)用finddle2分析下,還是比較好解決的
    2013-12-12
  • 基于樹莓派的語音對(duì)話機(jī)器人

    基于樹莓派的語音對(duì)話機(jī)器人

    這篇文章主要為大家詳細(xì)介紹了基于樹莓派的語音對(duì)話機(jī)器人,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-06-06
  • 淺談Python中的字符串

    淺談Python中的字符串

    這篇文章主要介紹了Python中的字符串相關(guān)知識(shí),文中講解的非常細(xì)致,代碼幫助大家更好的理解,感興趣的朋友可以參考下
    2020-06-06

最新評(píng)論

江西省| 叙永县| 灵川县| 中江县| 永新县| 阳新县| 玛纳斯县| 黄大仙区| 南宁市| 嘉义市| 金华市| 鞍山市| 桃源县| 沁水县| 潍坊市| 三门峡市| 于田县| 且末县| 沙湾县| 平利县| 淳化县| 嘉峪关市| 临西县| 改则县| 炎陵县| 鲁山县| 朝阳县| 汉中市| 安岳县| 莱芜市| 化隆| 晴隆县| 贡嘎县| 蚌埠市| 大庆市| 房产| 建水县| 西林县| 山阴县| 蓝山县| 顺义区|