2024-04-24 04:28:42 发布
网友
我需要从给定的列表中选择一些元素,知道它们的索引。假设我想创建一个新列表,其中包含一个索引为1、2、5的元素,来自给定的列表[-2、1、5、3、8、5、6]。我所做的是:
a = [-2,1,5,3,8,5,6] b = [1,2,5] c = [ a[i] for i in b]
有更好的办法吗?像c=a[b]?
备选方案:
>>> map(a.__getitem__, b) [1, 5, 5]
>>> import operator >>> operator.itemgetter(*b)(a) (1, 5, 5)
您可以使用^{}:
from operator import itemgetter a = [-2, 1, 5, 3, 8, 5, 6] b = [1, 2, 5] print(itemgetter(*b)(a)) # Result: (1, 5, 5)
或者可以使用numpy:
import numpy as np a = np.array([-2, 1, 5, 3, 8, 5, 6]) b = [1, 2, 5] print(list(a[b])) # Result: [1, 5, 5]
但实际上,你目前的解决方案是好的。这可能是他们中最整洁的。
另一个解决方案是通过熊猫系列:
import pandas as pd a = pd.Series([-2, 1, 5, 3, 8, 5, 6]) b = [1, 2, 5] c = a[b]
如果需要,可以将c转换回列表:
c = list(c)
备选方案:
您可以使用^{} :
或者可以使用numpy:
但实际上,你目前的解决方案是好的。这可能是他们中最整洁的。
另一个解决方案是通过熊猫系列:
如果需要,可以将c转换回列表:
相关问题 更多 >
编程相关推荐