如何用Python从4个字典中创建包含最大键值对的新字典?
实现方法
可以用两种简洁的Pythonic写法完成需求:
方法一:dict() + 生成器表达式
dict()支持接收由键值对元组组成的可迭代对象,我们只需遍历所有原字典,取出每个字典中键最大的键值对元组即可:
dict1 = {'20220101':'abc','20220509':'def'} dict2 = {'20220705':'ghi','20220810':'jkl'} dict3 = {'20221015':'mno','20221014':'pqr'} dict4 = {'20221208':'stu','20221231':'vwx'} newdict = dict(max(d.items()) for d in [dict1, dict2, dict3, dict4]) print(newdict) # 输出: {'20220509': 'def', '20220810': 'jkl', '20221015': 'mno', '20221231': 'vwx'}
方法二:字典推导式
通过推导式遍历每个原字典,将每个字典的最大键值对直接映射到新字典中:
newdict = {k: v for d in [dict1, dict2, dict3, dict4] for k, v in [max(d.items())]}
补充说明
你的日期键是字符串格式的数字,字符串的字典序与数字大小顺序完全一致,因此max(d.items())会自动返回键值最大的那个键值对元组,无需额外转换格式。
内容的提问来源于stack exchange,提问作者Sean R
相关产品推荐
相关产品推荐

