python - 用于将字典值转换为单独字典的单行
问题描述
我有一个字典 dict1,它的值也是字典
dict1 =
{
0: {'test1': ['pass', 'pass']},
1: {'test2': ['fail', 'pass']},
2: {'test3': ['fail', 'fail']},
3: {'test4': []},
4: {'test5': ['pass']},
5: {'test6': ['pass', 'pass']}
}
我想把它的值作为一个单独的字典 dict2,我试过这样
dict2 = {k:v for k,v in dict(dict1.values()).items()}
我在下面收到错误
ValueError: dictionary update sequence element #0 has length 1; 2 is required
预期产出
dict2 =
{
'test1': ['pass', 'pass'],
'test2': ['fail', 'pass'],
'test3': ['fail', 'fail'],
'test4': [],
'test5': ['pass'],
'test6': ['pass', 'pass']
}
任何帮助表示赞赏
解决方案
您可以 *将 dict 值放入链图中:
>>> from collections import ChainMap
>>> dict(ChainMap(*dict1.values()))
{'test6': ['pass', 'pass'],
'test5': ['pass'],
'test4': [],
'test3': ['fail', 'fail'],
'test2': ['fail', 'pass'],
'test1': ['pass', 'pass']}
实际上,链式映射也是一种映射(类似于 dict 的 API),因此您可能根本不需要外部 dict 调用。如果您希望保留顺序,则将值放入 with reversed
。
推荐阅读
- curl - 带有超时的 LUA curl 请求
- python - python argparse - 强制子命令
- r - 在 data.table 中添加多个带有 rep 的列
- android - 如果应用程序区域设置与系统区域设置不同,如何获取系统区域设置?
- python-3.x - 与 ctypes 一起使用时,串行通信共享库发送错误数据
- django - 哪些字符允许国际用户名和密码,Django,PostgreSQL
- sql - 带有子查询的 SQL GROUP BY
- php - ACF 转发器字段覆盖而不是更新
- mysql - 如何只计算左连接中的记录?
- php - PHP .htaccess 重写 url