python - 将 dict 中的列表作为值更改为 dict 中的正常值

标签 python list dictionary

我有一本字典,列表中包含值。但我想将它们从 list 更改为正常的 dict 值。 所以它看起来像这样:

{1: {'A': { 1: [5], 16: [5], 17: [4],
           20: [9], 22: [5], 26: [4],
           33: [2], 34: [4], 42: [2],
           47: [4], 72: [4], 80: [2]}}}

这是预期的输出:(删除方括号)

{1: {'A': { 1: 5, 16: 5, 17: 4,
           20: 9, 22: 5, 26: 4,
           33: 2, 34: 4, 42: 2,
           47: 4, 72: 4, 80: 2}}}

这些就像我的实际数据的摘录,大致如下所示。因此,每个 dict 中都有一组这些数据(总共 3*3=9)

{1: {"A": {}, "B": {}, "C":{}},
 2: {"A": {}, "B": {}, "C":{}},
 3: {"A": {}, "B": {}, "C":{}}}

我看到很多其他问题将 list 转换为 dict 中的值。但我正在尝试做相反的事情(将我的值更改为正常值而不是在 list 中)

如果您看到其他有类似问题的线程并且可以指导我解决这些问题,那就太好了。

最佳答案

您需要迭代内部字典,并获取每个列表中的索引 0

# solution for your specific case
values = {1: {'A': {1: [5], 16: [5], 17: [4], 20: [9], 22: [5], 26: [4],
                    33: [2], 34: [4], 42: [2], 47: [4], 72: [4], 80: [2]}}}

values = {1: {'A': {k: v[0] for k, v in values[1]['A'].items()}}}

以及任何三级字典的通用代码

values = {
    outerKey: {
        innerKey: {k: v[0] for k, v in innerDict.items()}
        for innerKey, innerDict in outerDict.items()
    } for outerKey, outerDict in values.items()
}

关于python - 将 dict 中的列表作为值更改为 dict 中的正常值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69003750/

相关文章:

python - 使用 MultiSelect 小部件隐藏和显示 Bokeh 中的线条

Java 泛型返回类型语法

c# - 在 C# 中循环遍历字典

javascript - 每个已解决的 Promise.map 和回调

python - 重新声明上面定义的 'button' 没有使用

python - 在python中使用递归查找树中的节点

python - 如何每隔第 n 个索引将一个字符串插入到 numpy 列表中?

python - 如何在表示图形的字典上行走并返回元素列表

java - 在 Java 中检测多个连接的设备

python - 如何在 Python 中按键对字典进行排序