【发布时间】:2017-11-27 09:17:05
【问题描述】:
class Solution(object):
def moveZeroes(self, nums):
nums.sort(key =lambda x : 1 if x == 0 else 0)
return nums
我的函数如上所示。
我似乎不明白代码key =lambda x : 1 if x == 0 else 0 是如何工作的。
我还尝试将 lambda 函数更改为:
def getKey(item):
if item == 0:
return 1
else:
return 0
但似乎不明白 key=1 或 0 是如何影响结果的。
【问题讨论】:
-
使用键排序意味着使用键函数给出的值作为放置项目的指示进行排序。在这种情况下,
0在1之前,因此所有产生 key0的项目将被放置在所有产生 key1的项目之前。 -
将
key视为原始数据与其他数据的“映射”(在本例中为1s 和0s)。这些1s 和0s 然后按照您的想象排序,然后映射反转以显示初始对象,但这次是排序的。 -
@khelwood 谢谢你们,我已经尝试在下面写下答案。
-
@Ev.Kounis 谢谢你,我已经尝试在下面写下答案。