2-5快速找到多个字典中的公共键

本文通过Python代码示例展示了如何找出多个字典之间的共同键。提供了三种不同的方法实现这一目标,包括直接遍历检查、使用viewkeys方法以及利用lambda表达式配合reduce函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

from random import randint, sample
# sample : 取样

sample('abcdefg', 3)
sample('abcdefg', randint(3, 6))

s1 = {x: randint(1, 5) for x in sample('abcdefg', randint(3, 6))}
s2 = {x: randint(1, 5) for x in sample('abcdefg', randint(3, 6))}
s3 = {x: randint(1, 5) for x in sample('abcdefg', randint(3, 6))}

# way_1
v_1 = []

for k in s1:
    if k in s2 and k in s3:
        v_1.append(k)

print v_1

# way_2
s1.viewkeys()  # 展示字典s1的key值组成的集合
s2.viewkeys()

v_2 = s1.viewkeys() & s2.viewkeys() & s3.viewkeys()  # 这种表示方式很有趣
print v_2

# way_3
# map(dict.viewkeys, [s1, s2, s3])
# [dict_keys(['c', 'b', 'g', 'f']),
# dict_keys(['c', 'e', 'd', 'g', 'f']),
# dict_keys(['a', 'd', 'g', 'f'])]

v_3 = reduce(lambda a, b:a & b,map(dict.viewkeys, [s1, s2, s3]))
print v_3
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值