Python列表作为列表索引

mah*_*kya 1 python list

假设我们有两个列表

list_A = [1,3,4,54,3,5,6,2,6,77,73,39]
list_B = [0,3,2,8]
Run Code Online (Sandbox Code Playgroud)

我想访问list_A具有值list_B作为索引的元素(不使用循环).

实施后,上述情况的结果如下:

[1, 54, 4, 6]
Run Code Online (Sandbox Code Playgroud)

有没有简单的方法可以做到这一点而不必烦恼for循环(在代码中明确地调用它)?

ars*_*jii 7

一切都将在内部使用循环*,但它不必像你想象的那么复杂.您可以尝试列表理解:

[list_A[i] for i in list_B]
Run Code Online (Sandbox Code Playgroud)

或者,您可以使用operator.itemgetter:

list(operator.itemgetter(*list_B)(list_A))
Run Code Online (Sandbox Code Playgroud)
>>> import operator
>>> list_A = [1,3,4,54,3,5,6,2,6,77,73,39]
>>> list_B = [0,3,2,8]
>>> [list_A[i] for i in list_B]
[1, 54, 4, 6]
>>> list(operator.itemgetter(*list_B)(list_A))
[1, 54, 4, 6]
Run Code Online (Sandbox Code Playgroud)

* OK!也许你不需要一个带递归的循环,但我认为这对于这样的东西肯定是过度杀伤.