• 首页
  • 九游折扣高吗介绍
  • 产品展示
  • 新闻动态
  • 新闻动态你的位置:九游折扣高吗 > 新闻动态 > Python移动数组中的目标元素

    Python移动数组中的目标元素

    发布日期:2025-04-13 11:07    点击次数:144

    任务要求

    给定一个数组nums和目标值target。将target元素移动到数组前面,其他元素相对顺序不变,得到新的数组。

    任务分析

    需要将数组中的所有目标值移动到前面,同时保持其他元素的相对顺序不变。以下是几种常见的实现方法:

    1.构造新列表:遍历原数组,分别收集目标值和其他元素,最后拼接两个列表。

    2.列表推导式:使用列表推导式分别提取目标值和其他元素,然后拼接。

    3.内置函数:利用Python的内置函数filter或sorted来实现。

    任务实现

    方法二:构造新列表。遍历原数组,分别收集目标值和其他元素,最后拼接两个列表。

    def move_target_to_front_new_list(nums, target): # 构造新列表 targets = [] others = [] for num in nums: if num == target: targets.append(num) else: others.append(num) return targets + othersoriginal_nums = [1, 2, 3, 2, 4, 5, 2]target_value = 2result = move_target_to_front_new_list(original_nums, target_value)print("构造新列表结果:", result)

    运行结果:

    构造新列表结果: [2, 2, 2, 1, 3, 4, 5]

    进程已结束,退出代码为 0

    targets列表用存储所有等于target的元素。others列表用于存储其他元素。最后将targets列表和others列表拼接,得到结果。

    方法二:列表推导式。使用列表推导式分别提取目标值和其他元素,然后拼接。

    def move_target_to_front_list_comprehension(nums, target): # 列表推导式 targets = [x for x in nums if x == target] others = [x for x in nums if x != target] return targets + othersoriginal_nums = [1, 2, 3, 2, 4, 5, 2]target_value = 2result = move_target_to_front_list_comprehension(original_nums, target_value)print("列表推导式结果:", result)

    运行结果:

    列表推导式结果: [2, 2, 2, 1, 3, 4, 5]

    进程已结束,退出代码为 0

    targets列表保存使用列表推导式提取所有等于target的元素。others列表保存使用列表推导式提取其他元素。最后将targets列表和others列表拼接,得到结果。

    方法三:内置函数。利用Python的内置函数filter来实现。

    def move_target_to_front_filter(nums, target): # 使用内置函数filter targets = list(filter(lambda x: x == target, nums)) others = list(filter(lambda x: x != target, nums)) return targets + othersoriginal_nums = [1, 2, 3, 2, 4, 5, 2]target_value = 2result = move_target_to_front_filter(original_nums, target_value)print("内置函数filter结果:", result)

    运行结果:

    内置函数filter结果: [2, 2, 2, 1, 3, 4, 5]

    进程已结束,退出代码为 0

    targets列表保存使用filter函数和lambda表达式提取所有等于target的元素。others列表保存使用filter函数和lambda表达式提取其他元素。最后将targets列表和others列表拼接,得到结果。

    总结

    本文介绍了三种使用Python将数组中目标值移动到前面的方法:

    1.构造新列表:直观且易于理解。

    2.列表推导式:代码简洁。

    3.内置函数:利用Python的内置功能,代码简洁。



    Powered by 九游折扣高吗 @2013-2022 RSS地图 HTML地图