如何使用 if 语句作为字典键并填充另一个字典?

mrq1901

我这里有一本有结构的字典

'set1':{ 'status': 1,
            'data': {'1': {'C': ['116.587',
                                 '52.674',
                                 '23.164',
                                 '8.5'],
                            <sth>:...},
                    {'2': {'C': ['11.507',
                                 '50.674',
                                 '23.004',
                                 '8.02'],
                            <sth>:...},
                    {'3': {'C': ['16.587',
                                 '2.674',
                                 '3.164',
                                 '0.5'],
                            <sth>:...} 
                    {'4': {'C': ['0.587',
                                 '1.674',
                                 '3.009',
                                 '0.55'],
                            <sth>:...} 

'set2':{ 'status': 1,
             'data': {'3': {'C': ['116.587',
                                 '52.674',
                                 '23.164',
                                 '8.5'],
                            <sth>:...}
#<goes like this>

我需要将所有通道的信息存储在 C 下,所有通道 '1'、'2'、'3' 和 '4' 超过 100k。但并非所有的集合都有 4 个通道,但只有“3”和“4”,或者只有“1”和“2”。我试图用零填充不存在的通道。

我尝试使用这个语句if( idict[n]["data"][c] ):我认为如果这是真的,例如 idict["set1"]["data"]["1"] 是真的,它应该填充通道 '1',否则它应该填充 '0.000'。

idict 是输入字典,odict 是输出字典

    for n in idict: #n is the set number
        try:
            if(idict[n]["status"]==1 and idict[n]["data"]):
               #some has status=0 or has no data key. I need to ignore those
                odict[n] = []
                for c in ('1','2','3','4'):
                    if( idict[n]["data"][c] ): #THIS IS WHAT I USED FOR THIS ISSUE
                        odict[n].append({
                            c : [
                                str(idict[n]["data"][c]["C"][0]),
                                str(idict[n]["data"][c]["C"][1]),
                                str(idict[n]["data"][c]["C"][2]),
                                str(idict[n]["data"][c]["C"][3])
                            ]
                            #indicies after ["C"] are for the 4 non integer entries 
                        })
                    else:
                        odict[n].append({
                            c : ['0.000','0.000','0.000','0.000']
                        })
        except KeyError:
            continue

输出应该是这样的

'set1':{ 
                   {'1': ['116.587','52.674','23.164','8.5']
                    {'2': ['11.507','50.674','23.004','8.02']
                    {'3': ['16.587','2.674','3.164','0.5']
                    {'4': ['0.587','1.674','3.009','0.55']
        }

'set2':{ 
                     '3': ['116.587','52.674,'23.164','8.5'],
                     '4': [<something similar>]
         }
#<goes like this>

但是对于缺少某些频道的集合,我得到了空字典,但是有 4 个频道的集合已被填满。

感谢任何帮助。

mrq1901

我已经找到了。代替

if( idict[n]["data"][c] ):

我应该用

if c in idict[str(n)]["data"]:

现在它起作用了。

感谢所有的努力。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何从一个字典向另一个不同类型的字典添加条目?

来自分类Dev

如何从字典数组中获取字典的数组(例如arrayGroupBy),其中某个键的值与另一个字典键的值匹配

来自分类Dev

如何在Python中从另一个字典复制唯一键和值

来自分类Dev

使用Python将1个字典的值与另一个字典的键匹配

来自分类Dev

如何在一个字典中找到在另一个字典中没有对应项的键?

来自分类Dev

如果满足某些条件,如何从另一个字典创建字典

来自分类Dev

根据其值的类型处理字典,并使用字典理解生成另一个字典

来自分类Dev

使用键,一个字典中的值来获取python中另一个字典中的值

来自分类Dev

如何根据python中另一个字典键的匹配来修改字典中的键值列表?

来自分类Dev

如何从另一个字典中减去一个字典的值并将结果写入第三个字典?

来自分类Dev

如何映射键,在另一个字典中查找键?

来自分类Dev

通过使用另一个字典键和值构造一个字典

来自分类Dev

如何将字典值映射到另一个字典

来自分类Dev

如何在python上制作一个字典在另一个字典中以及在另一个字典中

来自分类Dev

如何针对另一个字典键/值匹配查询嵌套对象字典

来自分类Dev

如何遍历字典中的键并与另一个字典中的键/值匹配

来自分类Dev

如何使用循环将字典添加到另一个字典中?

来自分类Dev

如何将字典中的键与列表中的元素进行匹配,并将这些键值存储到python中的另一个字典中?

来自分类Dev

如何用另一个字典过滤python字典?

来自分类Dev

如何将字典映射到另一个字典Python

来自分类Dev

识别一个字典中的键,并使用它来修改另一个字典的值

来自分类Dev

如果满足某些条件,如何从另一个字典创建字典

来自分类Dev

使用字典的值作为另一个字典中的键,并以键的频率作为值,Python 3.6

来自分类Dev

如何根据匹配的顶级键将元素从一个字典插入到另一个字典

来自分类Dev

创建一个字典,该字典使用来自另一个字典的相同对,但键被翻译

来自分类Dev

使用另一个字典列表中的键对字典列表进行排序

来自分类Dev

如何根据一个字典在 Python 中查询另一个字典的值来修改或创建字典

来自分类Dev

如何创建一个字典来显示另一个字典的哪些值属于哪些键

来自分类Dev

如何将字典的内容复制到另一个字典以在之后清除原始字典

Related 相关文章

  1. 1

    如何从一个字典向另一个不同类型的字典添加条目?

  2. 2

    如何从字典数组中获取字典的数组(例如arrayGroupBy),其中某个键的值与另一个字典键的值匹配

  3. 3

    如何在Python中从另一个字典复制唯一键和值

  4. 4

    使用Python将1个字典的值与另一个字典的键匹配

  5. 5

    如何在一个字典中找到在另一个字典中没有对应项的键?

  6. 6

    如果满足某些条件,如何从另一个字典创建字典

  7. 7

    根据其值的类型处理字典,并使用字典理解生成另一个字典

  8. 8

    使用键,一个字典中的值来获取python中另一个字典中的值

  9. 9

    如何根据python中另一个字典键的匹配来修改字典中的键值列表?

  10. 10

    如何从另一个字典中减去一个字典的值并将结果写入第三个字典?

  11. 11

    如何映射键,在另一个字典中查找键?

  12. 12

    通过使用另一个字典键和值构造一个字典

  13. 13

    如何将字典值映射到另一个字典

  14. 14

    如何在python上制作一个字典在另一个字典中以及在另一个字典中

  15. 15

    如何针对另一个字典键/值匹配查询嵌套对象字典

  16. 16

    如何遍历字典中的键并与另一个字典中的键/值匹配

  17. 17

    如何使用循环将字典添加到另一个字典中?

  18. 18

    如何将字典中的键与列表中的元素进行匹配,并将这些键值存储到python中的另一个字典中?

  19. 19

    如何用另一个字典过滤python字典?

  20. 20

    如何将字典映射到另一个字典Python

  21. 21

    识别一个字典中的键,并使用它来修改另一个字典的值

  22. 22

    如果满足某些条件,如何从另一个字典创建字典

  23. 23

    使用字典的值作为另一个字典中的键,并以键的频率作为值,Python 3.6

  24. 24

    如何根据匹配的顶级键将元素从一个字典插入到另一个字典

  25. 25

    创建一个字典,该字典使用来自另一个字典的相同对,但键被翻译

  26. 26

    使用另一个字典列表中的键对字典列表进行排序

  27. 27

    如何根据一个字典在 Python 中查询另一个字典的值来修改或创建字典

  28. 28

    如何创建一个字典来显示另一个字典的哪些值属于哪些键

  29. 29

    如何将字典的内容复制到另一个字典以在之后清除原始字典

热门标签

归档