Issue
I just came across this line of python:
order.messages = {c.Code:[] for c in child_orders}
I have no idea what it is doing, other than it is looping over the list child_orders
and placing the result in order.messages
.
What does it do and what is it called?
Solution
That's a dict comprehension.
It is just like a list comprehension
[3*x for x in range(5)]
--> [0,3,6,9,12]
except:
{x:(3*x) for x in range(5)}
---> { 0:0, 1:3, 2:6, 3:9, 4:12 }
- produces a Python
dictionary
, not alist
- uses curly braces
{}
not square braces[]
- defines key:value pairs based on the iteration through a list
In your case the keys are coming from the Code
property of each element and the value is always set to empty array []
The code you posted:
order.messages = {c.Code:[] for c in child_orders}
is equivalent to this code:
order.messages = {}
for c in child_orders:
order.messages[c.Code] = []
See also:
Answered By - Paul
0 comments:
Post a Comment
Note: Only a member of this blog may post a comment.