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

如何根据列表A与B的匹配结果提取对应数字?

根据列表匹配提取对应数字的解决方案

问题说明

需要按照列表B的字母顺序,从列表A中提取对应字母后的数字,生成目标列表C。

代码实现

A = ['D(1)', ' A(2)', 'C(3)', 'B(4)', 'E(5)']
B = ['A','B','C','D','E']

# 构建字母与数字的映射字典
char_num_map = {}
for item in A:
    # 去除元素前后的空白字符(处理带空格的条目如' A(2)')
    cleaned_item = item.strip()
    # 拆分字母和数字部分
    char, num_part = cleaned_item.split('(')
    # 提取数字并转换为整数
    num = int(num_part.rstrip(')'))
    char_num_map[char] = num

# 根据B的顺序生成目标列表C
C = [char_num_map[char] for char in B]
print(f"C = {C}")

代码解释

  1. 清理与拆分元素:通过strip()去除列表A中元素的前后空格,再用split('(')拆分出字母和带括号的数字部分。
  2. 构建映射字典:将字母作为键,提取并转换后的整数数字作为值存入字典,实现O(1)时间复杂度的快速查找。
  3. 生成目标列表:遍历列表B,通过字典查找每个字母对应的数字,用列表推导式生成最终的C。

运行代码后输出结果为:C = [2,4,3,1,5],完全符合期望。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 11:02:09