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

如何基于元组列表替换列表元素并保留原列表顺序?

解决方法

核心思路是先把替换规则转换成字典(查找效率更高),再遍历原列表完成替换,这样能严格保留原列表的顺序:

  1. 将元组列表转为替换字典:利用Python的dict()函数,把元组列表b转换成键值对形式的字典——元组的第一个元素是待替换的旧值(字典的键),第二个元素是新值(字典的值)。
  2. 遍历原列表完成替换:用列表推导式遍历原列表a,对每个元素使用字典的get()方法:如果元素在字典的键中存在,就返回对应的新值;不存在则返回元素本身,完美保留原顺序。

完整代码示例

a = ['heyyo', 'how', 'ale', 'yiou']
b = [('yiou', 'you'), ('heyyo', 'hello')]

# 转换替换规则为字典
replace_map = dict(b)
# 生成替换后的列表
new_list = [replace_map.get(item, item) for item in a]

print(new_list)  # 输出: ['hello', 'how', 'ale', 'you']

补充说明

  • 如果元组列表b中存在重复的待替换值(即多个元组的第一个元素相同),dict(b)会保留最后出现的那个替换规则,因为字典的键是唯一的。
  • 这种方法的时间复杂度是O(n)(n为列表a的长度),执行效率很高。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 19:16:02