调整数组顺序使奇数位于偶数前面 链接到标题 def reorder(nums, func): left, right = 0, len(nums) - 1 while left < right: while not func(nums[left]): left += 1 while func(nums[right]): right -= 1 if left < right: nums[left], nums[right] = nums[right], nums[left] def is_even(num): return (num & 1) == 0 调整数组顺序使奇数位于偶数前面,保持相对位置不变 链接到标题 def reorder2(nums): left = [num for num in nums if num & 1 != 0] right = [num for num in nums if num & 1 == 0] return left + right nums = [1,2,3,4,5,6,7] print reorder2(nums)