📅  最后修改于: 2023-12-03 15:04:28.459000             🧑  作者: Mango
本文介绍如何使用Python编写一个函数将列表中的正数和负数分别放在一起,返回排序后的结果。此函数将原列表中的元素按照正负性重新排列,保持原先位置不变。
def rearrange(arr):
# 获取正数和负数的列表
pos = [i for i in arr if i > 0]
neg = [i for i in arr if i < 0]
# 将正数和负数的列表合并,保持原始顺序不变
res = []
i, j = 0, 0
while i < len(pos) and j < len(neg):
if i <= j:
res.append(pos[i])
i += 1
else:
res.append(neg[j])
j += 1
res += pos[i:]
res += neg[j:]
return res
[4, -6, 8, -2, 5, -7, 6, -3]
。rearrange([4, -6, 8, -2, 5, -7, 6, -3])
。[4, -6, 8, -2, 5, -7, 6, -3]
经过函数处理后变成[4, 5, 8, 6, -6, -2, -7, -3]
。