python - 如何反转列表中以字典为值的键值对?

标签 python pyspark

我有一个键值对如下:

((1,{'foo':1,'abc':2,'xyz':3,'def':2}),(2,{'ghu':3,'kie':2}))

我能够将键值对反转为以下形式:

((({'foo':1,'abc':2,'xyz':3,'def':2}),1),(({'ghu':3,'kie':2})),2)

但我需要以下格式的内容。尝试了各种选项但没有成功

(({'foo':1}),1)
(({'abc':2}),1)
(({'xyz':3}),1)
(({'def':2}),1)
(({'ghu':3}),2)
(({'kie':2}}),2)

有人可以帮我解决这个问题吗?

最佳答案

此列表理解将产生您想要的格式:

l = ((1,{'foo':1,'abc':2,'xyz':3,'def':2}),(2,{'ghu':3,'kie':2}))
tuple((({k:v}),i) for i,j in l for k,v in j.items())

关于python - 如何反转列表中以字典为值的键值对?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31129310/

相关文章:

python - Plotly 无法正确显示 y 轴标签

python - 使用 MPI 的 Allreduce 对 Python 对象求和

apache-spark - 将 Spark DataFrame 中列的 Null 值替换为其平均值

dataframe - Pyspark 中的任何函数是否生成相同的连续唯一值集?

apache-spark - 如何检查点RDD

python - 使用python检查注册表项是否存在

python - Pygame 形状不能采用非整数参数

python - Pyspark 从具有不同列的行/数据创建 DataFrame

带有 Docker 的 Python Luigi - 线程/信号问题

apache-spark - 无法运行 ALS.train,错误 : java. lang.IllegalArgumentException