这个包含大括号和for in循环的python表达式是什么?
我刚刚遇到了一行python:这个包含大括号和for in循环的python表达式是什么?,python,Python,我刚刚遇到了一行python: order.messages = {c.Code:[] for c in child_orders} 我不知道它在做什么,只知道它在列表child\u orders上循环,并将结果放入order.messages 它做什么?它叫什么?它是字典理解 它遍历子订单并创建一个字典,其中键为c.code,值为[] 更多信息。这是一个口述理解 sample_list = [2,4,6,8,9,10] dict = {val: val**2 for val in sampl
order.messages = {c.Code:[] for c in child_orders}
我不知道它在做什么,只知道它在列表child\u 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}
它就像一个列表
除:
{x:(3*x) for x in range(5)}
---> { 0:0, 1:3, 2:6, 3:9, 4:12 }
- 生成Python
,而不是字典
列表
- 使用大括号
而不是方括号{}
[]
- 基于列表中的迭代定义键:值对
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}
上面的代码片段将数字映射到它们的偶数正方形