Python中的Lambda表达式重新排列正数和负数
给定一个由正数和负数组成的数组,排列它们使得所有负整数都出现在数组中的所有正整数之前。应保持出场顺序。
例子:
Input : arr[] = [12, 11, -13, -5, 6, -7, 5, -3, -6]
Output : arr[] = [-13, -5, -7, -3, -6, 12, 11, 6, 5]
Input : arr[] = [-12, 11, 0, -5, 6, -7, 5, -3, -6]
Output : arr[] = [-12, -5, -7, -3, -6, 11, 0, 6, 5]
这个问题有很多解决方案,请参考重新排列正负数链接,但我们将使用 Lambda 表达式在Python中用单行代码解决这个问题。
# Function to rearrange positive and negative elements
def Rearrange(arr):
# First lambda expression returns list of negative numbers
# in arr.
# Second lambda expression returns list of positive numbers
# in arr.
return [x for x in arr if x < 0] + [x for x in arr if x >= 0]
# Driver function
if __name__ == "__main__":
arr = [12, 11, -13, -5, 6, -7, 5, -3, -6]
print (Rearrange(arr))
输出:
arr[] = [-13, -5, -7, -3, -6, 12, 11, 6, 5]