<分区>
我在看a lecture from David Beazley .在第 23:20 分钟,他做了一些我很难理解的打开包装的“魔术”。
“魔法线”是
fail = [ { **row, 'DBA Name': row['DBA Name'].replace("'",'').upper() } for row in fail ]
我已经搜索过类似的示例,但找不到。你能解释一下这段代码中发生了什么吗?你能给我指出一些类似的例子吗?
<分区>
我在看a lecture from David Beazley .在第 23:20 分钟,他做了一些我很难理解的打开包装的“魔术”。
“魔法线”是
fail = [ { **row, 'DBA Name': row['DBA Name'].replace("'",'').upper() } for row in fail ]
我已经搜索过类似的示例,但找不到。你能解释一下这段代码中发生了什么吗?你能给我指出一些类似的例子吗?
最佳答案
该代码片段在添加新元素的同时,将字典文字中已有的映射 row
解包。一个证明这一点的简化示例:
>>> r = {'a':1, 'b':2}
>>> {**r, 'Spam': 20}
{'Spam': 20, 'a': 1, 'b': 2}
此解包仅在 Pythons >= 3.5 中可用,如 PEP 448 所介绍的那样;在以前的版本中,它是一个 SyntaxError
。
关于python - 列表理解中的奇怪拆包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45758773/