📌  相关文章
📜  Python中的Lambda表达式重新排列正数和负数

📅  最后修改于: 2022-05-13 01:55:43.171000             🧑  作者: Mango

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]