What is this python expression containing curly braces and a for in loop?
我刚遇到这条Python线:
1 | order.messages = {c.Code:[] for c in child_orders} |
我不知道它在做什么,只知道它正在循环遍历清单
它做什么,叫什么?
这是听写理解。
就像一个清单理解
1 2 | [3*x for x in range(5)] --> [0,3,6,9,12] |
除了:
1 2 | {x:(3*x) for x in range(5)} ---> { 0:0, 1:3, 2:6, 3:9, 4:12 } |
号
- 生成python
dictionary ,而不是list 。 - 使用大括号
{} 而不是方括号[] - 定义键:基于列表迭代的值对
在您的情况下,键来自每个元素的
您发布的代码:
1 | order.messages = {c.Code:[] for c in child_orders} |
等同于此代码:
1 2 3 | order.messages = {} for c in child_orders: order.messages[c.Code] = [] |
。
另请参见:
- 政治公众人物0274
- Python字典理解
这是字典理解!
它迭代
更多信息。