python - 如何在python中从不同长度的列表创建字典
问题描述
我有一个这样的 x 列表:
x =[[[1, 2]], [[2, 1], [2, 3]], [[3, 2]], [[4, 7, 6, 5]]]
我尝试在最终结果中创建一个字典列表,如下所示:
dict_list = [{"user_idx": 1, "partner_1": 2}, {"user_idx": 2, "partner_1": 1, "partner_2": 3},
{"user_idx": 3, "partner_1": 2}, {"user_idx": 4, "partner_1":7, "partner_2": 6,"partner_3":5}]
如何用 python 代码完成它?
解决方案
尝试:
x =[[[1, 2]], [[2, 1], [2, 3]], [[3, 2]], [[4, 7, 6, 5]]]
out = {}
for g in x:
for subl in g:
out.setdefault(subl[0], []).extend(subl[1:])
out = [
{
"user_idx": k,
**{"partner_{}".format(idx): i for idx, i in enumerate(v, 1)},
}
for k, v in out.items()
]
print(out)
印刷:
[
{"user_idx": 1, "partner_1": 2},
{"user_idx": 2, "partner_1": 1, "partner_2": 3},
{"user_idx": 3, "partner_1": 2},
{"user_idx": 4, "partner_1": 7, "partner_2": 6, "partner_3": 5},
]
推荐阅读
- netsuite - SuiteScript 治理和计划脚本
- c - 在编译器和在线判断(codeforces)中显示不同的结果
- javascript - 如何将道具传递给链接函数?
- c# - Using threads and semaphores
- python - 如何将小数字转换为python中的浮点数?
- r - 删除 ggplot 中对数刻度 y 轴的未使用部分
- oracle-cloud-infrastructure - 检索命名空间时出错。获取失败。对象存储无法连接到美国东部(阿什本)区域
- css - 如何将指标放置在轮播图像之外?(引导程序 4)
- c++ - 当我的代码给出正确的输出时,为什么会出现分段错误?
- php - 缺少存储过程的第一个结果