用Python重新编写此嵌套IF语句的正确方法是什么

马丁

我有一本具有以下结构的字典:

{ "123" : {"red" : ['some text', datetime.datetime(2011, 8, 23, 3, 19, 38), status]},
  "456" : {"red" : ['some other text', datetime.datetime(2013, 8, 23, 3, 19, 38), status],
           "blue" : ['some more text', datetime.datetime(2010, 8, 23, 3, 19, 38), status]},
  "789" : {"blue" : ['random text', datetime.datetime(2012, 8, 23, 3, 19, 38), status],
           "yellow" : ['text', datetime.datetime(2009, 8, 23, 3, 19, 38), status]}}

现在,我有一些逻辑来更新此词典。它首先检查此字典中是否已存在条目,如果存在,则检查子条目是否存在,并比较时间和更新。如果其中之一不存在,它将创建一个新条目:

if example_id in my_directory:
    if color in my_directory[example_id]:
        if time > my_directory[example_id][color][1]:
            my_directory[example_id][color] = [text, time, status]
    else:
        my_directory[example_id] = {color : [text, time, status]}
else:
    my_directory[example_id] = {color : [text, time, status]}

显然,timecolor,和status作为已经存在的变量传递。重新编写此IF语句以不重复第二和第三目录更新命令的正确方法是什么?谢谢!

凯文

正如其他人所说,使用defaultdict:

my_dictionary = collections.defaultdict(
                lambda: collections.defaultdict(
                lambda: (None, datetime.datetime.min, None)))

# populate my_dictionary

_, old_time, _ = my_dictionary[example_id][color]
if time > old_time:
    # NB: tuples make more sense here than lists
    my_directory[example_id][color] = (text, time, status)

这将(None, datetime.datetime.min, None)在您的字典中临时添加一个元组,然后将其替换为实际值。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

用多行“ ands”或“ or”在Java中格式化“ if”语句的正确方法是什么?

来自分类Dev

用Java 8中的流替换嵌套的for循环的正确方法是什么?

来自分类Dev

解决此警告的正确方法是什么?

来自分类Dev

用Java编写自己的事件的正确方法是什么

来自分类Dev

用python将图像插入Postgres的正确方法是什么?

来自分类Dev

编写此函数的正确(有效)方法是什么?

来自分类Dev

用较大的if语句重新编写一些基本的swift代码

来自分类Dev

编写用Flow验证的Jest测试的正确方法是什么?

来自分类Dev

我将如何重新编写此硬币翻转循环

来自分类Dev

我可以用LINQ编写此语句的两种方式是什么?

来自分类Dev

在Python中编写多重嵌套的for循环的最佳方法是什么

来自分类Dev

用奇点gs编写断点的正确方法是什么?

来自分类Dev

编写haskell函数的正确方法是什么

来自分类Dev

在Python中重新分配列表的正确方法是什么?

来自分类Dev

编写此多条件if语句的正确方法是什么?

来自分类Dev

用抽象方法编写Javadoc的正确方法是什么

来自分类Dev

编写Ruby代码的正确方法是什么?

来自分类Dev

用python扭曲做旋转日志的正确方法是什么?

来自分类Dev

如何使用Linq重新编写此代码?

来自分类Dev

解释此代码的正确方法是什么?

来自分类Dev

R:用R编写此公式的最有效方法是什么?

来自分类Dev

此SQL SELECT语句的正确语法是什么

来自分类Dev

向此 if 语句添加 2 个条件的正确方法是什么?

来自分类Dev

进行此布局的正确方法是什么?

来自分类Dev

重新编译内核的简单方法是什么?

来自分类Dev

用折叠重新编写'map intToDigit'...

来自分类Dev

编写此代码的正确方法是什么,以便我创建的表 td:button 用我列出的项目行进行罢工?

来自分类Dev

使用 Python 语法编写此 PHP 代码的最简单方法是什么?

来自分类Dev

编写此代码的更好方法是什么?

Related 相关文章

  1. 1

    用多行“ ands”或“ or”在Java中格式化“ if”语句的正确方法是什么?

  2. 2

    用Java 8中的流替换嵌套的for循环的正确方法是什么?

  3. 3

    解决此警告的正确方法是什么?

  4. 4

    用Java编写自己的事件的正确方法是什么

  5. 5

    用python将图像插入Postgres的正确方法是什么?

  6. 6

    编写此函数的正确(有效)方法是什么?

  7. 7

    用较大的if语句重新编写一些基本的swift代码

  8. 8

    编写用Flow验证的Jest测试的正确方法是什么?

  9. 9

    我将如何重新编写此硬币翻转循环

  10. 10

    我可以用LINQ编写此语句的两种方式是什么?

  11. 11

    在Python中编写多重嵌套的for循环的最佳方法是什么

  12. 12

    用奇点gs编写断点的正确方法是什么?

  13. 13

    编写haskell函数的正确方法是什么

  14. 14

    在Python中重新分配列表的正确方法是什么?

  15. 15

    编写此多条件if语句的正确方法是什么?

  16. 16

    用抽象方法编写Javadoc的正确方法是什么

  17. 17

    编写Ruby代码的正确方法是什么?

  18. 18

    用python扭曲做旋转日志的正确方法是什么?

  19. 19

    如何使用Linq重新编写此代码?

  20. 20

    解释此代码的正确方法是什么?

  21. 21

    R:用R编写此公式的最有效方法是什么?

  22. 22

    此SQL SELECT语句的正确语法是什么

  23. 23

    向此 if 语句添加 2 个条件的正确方法是什么?

  24. 24

    进行此布局的正确方法是什么?

  25. 25

    重新编译内核的简单方法是什么?

  26. 26

    用折叠重新编写'map intToDigit'...

  27. 27

    编写此代码的正确方法是什么,以便我创建的表 td:button 用我列出的项目行进行罢工?

  28. 28

    使用 Python 语法编写此 PHP 代码的最简单方法是什么?

  29. 29

    编写此代码的更好方法是什么?

热门标签

归档