我刚刚发现了这一行python代码:
order.messages = {c.Code:[] for c in child_orders}
除了循环遍历列表child_orders
并将结果放置在order.messages
中以外,我不知道它在做什么。
它是什么,叫什么?
我刚刚发现了这一行python代码:
order.messages = {c.Code:[] for c in child_orders}
除了循环遍历列表child_orders
并将结果放置在order.messages
中以外,我不知道它在做什么。
它是什么,叫什么?
这是一个字典推导式。
它就像是一个列表推导式。
[3*x for x in range(5)]
--> [0,3,6,9,12]
除了:
{x:(3*x) for x in range(5)}
---> { 0:0, 1:3, 2:6, 3:9, 4:12 }
字典
,而不是一个列表
{}
而不是方括号 []
在您的情况下,键来自每个元素的Code
属性,而值始终设置为空数组[]
您发布的代码:
order.messages = {c.Code:[] for c in child_orders}
等价于这段代码:
order.messages = {}
for c in child_orders:
order.messages[c.Code] = []
另请参见:
sample_list = [2,4,6,8,9,10]
dict = {val: val**2 for val in sample_list if val**2 % 2 == 0}
print(dict)
//Output: {8: 64, 2: 4, 4: 16, 10: 100, 6: 36}