You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python如何拆分方向坐标元组为两个子元组并保留元素原有顺序

Python按方位拆分坐标元组(保留原顺序)

需求场景

给定方位坐标元组:

coordinates = ('S', 'W', 'W', 'S', 'E', 'S', 'E', 'N', 'N')

需要拆分为两个独立子元组:

  • 子元组1:收集所有N(北)、S(南)方向值,元素顺序和原元组中出现顺序一致
  • 子元组2:收集所有E(东)、W(西)方向值,元素顺序和原元组中出现顺序一致
    预期运行结果:
new_coordinates_one = ('S', 'S', 'S', 'N', 'N')
new_coordinates_two = ('W', 'W', 'E', 'E')

实现代码

直接遍历原元组做条件筛选即可,代码简洁且执行效率高:

coordinates = ('S', 'W', 'W', 'S', 'E', 'S', 'E', 'N', 'N')

# 筛选南北方向坐标
new_coordinates_one = tuple(elem for elem in coordinates if elem in {'N', 'S'})
# 筛选东西方向坐标
new_coordinates_two = tuple(elem for elem in coordinates if elem in {'E', 'W'})

逻辑说明

  • 遍历过程严格按照原元组的元素顺序执行,筛选出的元素自然保留原有先后顺序,不需要额外做排序处理
  • 用集合{'N','S'}做成员判断,比列表判断的执行速度更快,数据量大的时候优势更明显
  • 生成器表达式作为tuple()的入参,不会生成冗余的中间列表,内存开销更小

内容的提问来源于stack exchange,提问作者robbo500

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.02 03:18:25