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

如何提取两个元组中首字符串相同的元素,优先用列表推导式实现

方案可行性说明

带过滤器的列表推导式完全可以实现该需求,实现逻辑非常简洁。

实现步骤

  1. 先提取两个元组中所有元素的首字段,取交集得到同时在双方出现的字段集合,作为过滤依据
  2. 按你需要的顺序拼接两个元组,用列表推导式过滤出首字段属于交集的元素,最后转为元组即可

代码示例

a = (('we', 23), ('b', 2))
b = (('we', 3), ('e', 3), ('b', 4))

# 提取共同首字段
common_keys = {item[0] for item in a} & {item[0] for item in b}
# 带过滤的列表推导式筛选,拼接顺序b在前a在前和预期输出顺序一致
result = tuple([item for item in b + a if item[0] in common_keys])

print(result)
# 输出:(('we', 3), ('b', 4), ('we', 23), ('b', 2)),和预期完全匹配

如果希望减少变量定义,也可以把交集计算直接写到推导式的过滤条件中:

result = tuple([item for item in b + a if item[0] in {i[0] for i in a} & {i[0] for i in b}])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 18:57:03