我有这一行理解,并试图将其分解以理解它:
units = dict((s, [u for u in unitlist if s in u]) for s in boxes)
Run Code Online (Sandbox Code Playgroud)
到目前为止,我已经提出了这个,但它没有给出相同的输出:
u = []
for s in boxes:
for u in unitlist:
if s in u:
u.append(u)
units = dict(u)
Run Code Online (Sandbox Code Playgroud)
请提供建议,并请指导我到任何我能理解如何更好地在两者之间切换的地方。我发现没有单行代码更容易理解代码。
带有列表理解的原始表达式:
units = dict((s, [u for u in unitlist if s in u]) for s in boxes)
Run Code Online (Sandbox Code Playgroud)
经典再现:
units = {}
for s in boxes:
values = []
for u in unitlist:
if s in u:
values.append(u)
units[s] = values
Run Code Online (Sandbox Code Playgroud)
你的原始表达是“用as和一个 unitlist 的子列表作为对dict()
组成”key, value
s
key
value
您的表达式还表示有一个条件:尽管所有s in boxes
将在您的units
dict 中作为键找到,但关联的值将相等或u
.