假设我们有两个列表
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
循环(在代码中明确地调用它)?
一切都将在内部使用循环*,但它不必像你想象的那么复杂.您可以尝试列表理解:
[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!也许你不需要一个带递归的循环,但我认为这对于这样的东西肯定是过度杀伤.
归档时间: |
|
查看次数: |
2448 次 |
最近记录: |