如何用单行代码根据指定索引列表获取目标列表元素
解决方法:从list2中提取list1指定索引的元素
没问题,这事儿其实挺简单的,我直接给你正确的单行实现方式,再补个例子帮你理解:
方法1:基础列表推导式(最推荐)
这是最直观也最常用的写法,完全不需要lambda:
result = [list2[i] for i in list1]
举个实际例子:
list1 = [2, 0, 3] # 要提取的索引 list2 = ["apple", "banana", "cherry", "date"] result = [list2[i] for i in list1] # 输出:['cherry', 'apple', 'date']
方法2:结合map和lambda的写法
如果你想用lambda的话,可以配合map函数,但记得要把map返回的迭代器转成列表:
result = list(map(lambda idx: list2[idx], list1))
用上面的例子测试,得到的结果和列表推导式完全一致。
注意事项
- 要确保list1里的所有索引都是合法的——也就是不能超过list2的长度减1,不然会抛出
IndexError哦。
内容的提问来源于stack exchange,提问作者Morse
相关产品推荐
相关产品推荐

