【发布时间】:2020-09-16 03:49:15
【问题描述】:
if sum([x,y])
return max([sum([x,y]) for x in keyboards for y in drives if sum([x,y]) <= b]+[-1])
有人请解释代码
【问题讨论】:
-
它正在关闭在
sum([x,y])之前打开的方括号,这是您形成的理解的一部分。
if sum([x,y])
return max([sum([x,y]) for x in keyboards for y in drives if sum([x,y]) <= b]+[-1])
有人请解释代码
【问题讨论】:
sum([x,y]) 之前打开的方括号,这是您形成的理解的一部分。
您所拥有的是:[list comprehension] + [-1]。这将创建一个包含两个列表的新列表。
无论出于何种原因,该代码的作者希望最大值至少为 -1。
【讨论】:
您可能应该切换到突出显示匹配的大括号和括号的编辑器。
您的代码重写,只需添加空格(Python 将忽略):
return max(
[
sum(
[
x,y
]
)
for x in keyboards
for y in drives
if sum(
[
x,y
]
) <= b
]
+
[
-1
]
)
看看括号是怎么匹配的?
【讨论】: