Python:如何从列表中获取第n个元素,其中n从列表中获取

时间:2018-12-07 18:41:22

标签: python python-2.7 list

所以说我有

a = ['the dog', 'cat', 'the frog went', '3452', 'empty', 'animal']
b = [0, 2, 4]

如何退货:

c = ['the dog', 'the frog went', 'empty'] ?

即我如何从a返回第n个元素,其中n包含在单独的列表中?

4 个答案:

答案 0 :(得分:5)

使用列表理解功能,只需执行以下操作:

c = [a[x] for x in b]

答案 1 :(得分:2)

另一种方法是:

map(a.__getitem__, b)

答案 2 :(得分:0)

另一种解决方案:如果您愿意使用numpy(import numpy as np),则可以使用其精美的索引功能(àMatlab),也就是一行:

c = list(np.array(a)[b])

答案 3 :(得分:0)

其他选项,列表理解改为在a上迭代(效率较低):

[ e for i, e in enumerate(a) if i in b ]

#=> ['the dog', 'the frog went', 'empty']

带有lambda的O:

map( lambda x: a[x], b )