您的位置:首页 > 其它

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

2017-03-23 18:57 260 查看
# -*- 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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: