複数の辞書で共通のキーを見つける簡単な方法-Pythonの基本

方法1:ループ内

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间随机取一个数

方法2:セットの交差演算を使用する

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辞書のキー、セット形式を取得します;
a1.keys()&a2.keys()&a3.keys()&a4.keys():4セットの共通要素を取得します;
aセットです

方法3:mapまたはreduceを使用する(n個の辞書の公開鍵を見つけるために使用)

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])  #以集合形式取每个字典的keys;

おすすめ

転載: blog.csdn.net/m0_67575344/article/details/123908057