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

Python中按起始字符筛选元组元素并提取对应整数

用Pythonic方式提取目标门号

嘿,这个需求用列表推导式就能完美解决,这可是Python里处理这类筛选+提取任务最地道、最简洁的写法了!

针对你给出的几种doors元组情况,我们可以分两种思路实现:

思路1:筛选包含字母'G'的元素

直接检查每个元素的标签里是否包含'G',如果是就提取对应的数字:

# 示例输入(三种情况任选其一)
doors = [(1,'C'),(2,'G1'),(3,'G2')]
# doors = [(1,'G1'),(2,'G2')]
# doors = [(1,'G2'),(3,'C')]

# 列表推导式实现筛选+提取
g_door_numbers = [num for num, label in doors if 'G' in label]
print(g_door_numbers)

对应三种输入的输出分别是:

  • [(1,'C'),(2,'G1'),(3,'G2')] → [2, 3]
  • [(1,'G1'),(2,'G2')] → [1, 2]
  • [(1,'G2'),(3,'C')] → [1]

思路2:排除标记为'C'的元素

如果你的需求是排除所有标记为'C'的项,提取剩下的数字,写法类似:

non_c_door_numbers = [num for num, label in doors if label != 'C']
print(non_c_door_numbers)

这个逻辑在你给出的案例里和思路1结果一致,但如果后续出现其他非G非C的标记,两种思路会有区别,你可以根据实际需求选择。

这种写法比传统的for循环+append要简洁得多,而且可读性拉满,完全符合Python的风格~

内容的提问来源于stack exchange,提问作者florence-y

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 07:24:42