Python中如何比较两个列表并提取匹配项及后续元素
解决方案
方式一:获取元素列表
遍历列表a,逐个检查元素是否在b中,若匹配则将该元素及其下一个元素加入结果列表:
a = ['bww', '1', '23', 'honda', '2', '55', 'ford', '11', '88', 'tesla', '15', '1', 'kia', '2', '3'] b = ['ford', 'honda'] result = [] for i in range(len(a)): if a[i] in b: # 避免索引越界,确保当前元素不是列表最后一个 if i + 1 < len(a): result.append(a[i]) result.append(a[i+1]) print(result) # 输出: ['ford', '11', 'honda', '2']
方式二:获取合并后的字符串列表
如果想要更紧凑的格式,直接将匹配元素和下一个元素拼接成字符串:
a = ['bww', '1', '23', 'honda', '2', '55', 'ford', '11', '88', 'tesla', '15', '1', 'kia', '2', '3'] b = ['ford', 'honda'] result = [] for i in range(len(a)): if a[i] in b: if i + 1 < len(a): result.append(f"{a[i]} {a[i+1]}") print(result) # 输出: ['ford 11', 'honda 2']
补充说明
- 加入
i + 1 < len(a)的判断是为了健壮性:如果列表a中匹配的元素恰好是最后一位,避免出现索引越界错误。 - 若需要保持
b中元素的顺序,可调整遍历逻辑为先遍历b,再去a中查找对应元素和下一位,当前代码输出已符合示例需求。
内容的提问来源于stack exchange,提问作者KariLai
相关产品推荐
相关产品推荐

