使用Python的切片运算符,可以实现:
a = [0, 10, 20, 30, 40, 50]
>>> a[0:5:2]
[0, 20, 40]
如果我想以任意顺序访问列表的元素,该怎么办?我想做的是这样的事情:
>>> a([1,0,3,5]) #MATLAB notation!
[10, 0, 30, 50]
(I know how to do this with numpy,但如果可能的话,我宁愿不导入任何套餐。)
答案 0 :(得分:2)
您可以使用operator.itemgetter
,就像这样
from operator import itemgetter
print itemgetter(1, 0, 3, 5)(a)
# (10, 0, 30, 50)
您甚至可以将其存储在变量中,稍后再使用。例如,
custom_picker = itemgetter(1, 0, 3, 5)
custom_picker(a)
答案 1 :(得分:1)
您可以按如下方式使用:
b = [1,0,3,5]
x = [a[i] for i in b]
>>> x
[10, 0, 30, 50]
正如你所说,你宁愿不导入任何包裹。