编程技术问询:如何根据指定索引提取列表元素并添加至另一列表?
解决从列表按指定索引提取元素的问题
嘿,这事儿简单得很!我给你分享几种实用的方法,轻松把列表a里对应索引的元素捞出来放到c里:
方法1:直观的循环遍历
这是最容易理解的写法,适合刚接触Python的朋友:
a = ['dog','cat','house','car'] b = [0,2] c = [] # 遍历索引列表b,逐个提取元素添加到c for idx in b: c.append(a[idx]) print(c) # 输出: ['dog', 'house']
方法2:简洁的列表推导式
Python里的列表推导式能一行搞定,代码更紧凑:
a = ['dog','cat','house','car'] b = [0,2] # 一行生成目标列表c c = [a[idx] for idx in b] print(c) # 输出: ['dog', 'house']
方法3:高效的itemgetter(适合大量索引的场景)
如果你的索引列表b很长,用operator.itemgetter会更高效,一次性获取所有目标元素:
from operator import itemgetter a = ['dog','cat','house','car'] b = [0,2] # 一次性获取多个索引对应的元素,转成列表 c = list(itemgetter(*b)(a)) print(c) # 输出: ['dog', 'house']
额外提醒:处理非法索引
要是b里的索引可能超出a的范围,记得加个判断避免报错:
a = ['dog','cat','house','car'] b = [0,2,5] c = [] for idx in b: # 先检查索引是否在合法范围内 if 0 <= idx < len(a): c.append(a[idx]) else: print(f"警告:索引{idx}超出列表a的范围,已跳过") print(c) # 输出: ['dog', 'house']
内容的提问来源于stack exchange,提问作者Diego Mencos
相关产品推荐
相关产品推荐

