0

为什么在 if sum([x,y]) <=b "]" +[-1]) 中的 b 之后出现此代码中的括号

return max([sum([x,y]) for x in keyboards for y in drives if sum([x,y]) <= b]+[-1]) 有人请解释代码

4

2 回答 2

0

您可能应该切换到突出显示匹配的大括号和括号的编辑器。

您的代码重写,只需添加空格(Python 将忽略):

return max(
    [
        sum(
            [
                x,y
            ]
        ) 
        for x in keyboards 
        for y in drives 
        if sum(
            [
                x,y
            ]
        ) <= b
    ]
    +
    [
        -1
    ]
)

看看括号是如何匹配的?

于 2020-09-16T03:54:40.437 回答
0

你所拥有的是:[list comprehension] + [-1]. 这将创建一个包含两个列表的新列表。

无论出于何种原因,该代码的作者都希望 max 至少为-1.

于 2020-09-16T03:51:51.407 回答