从最后一个元素开始获取数组的索引

从最后一个元素开始获取数组的索引

问题描述:

如何使用下面的代码获得反向迭代。我应该使用reduce函数吗?从最后一个元素开始获取数组的索引

实施例:

for i in range(4): 
    print i ////0 1 2 3 

如何打印相同的以相反的顺序

3 2 1 0 

a=[5,2,1,4,3] 

我也想使用索引而不是a[::-1] 即打印与上述相反的阵列,我想先打印

a[4] //get index starting from last how to achieve this 
a[3] 
a[2] 
a[1] 
a[0] 
+0

范围(4,0,-1)'创建一个反向范围。不过,不明白你的尴尬的第二部分。 – kirilloid 2012-02-20 09:57:47

+0

@kirilloid'范围(4,0,-1)'不是'反转(范围(4))' – eumiro 2012-02-20 09:59:35

+1

是的,它应该是'range(3,-1,-1)',而用'reversed'更好的 – kirilloid 2012-02-20 10:04:24

使用reversed功能:

for i in reversed(range(4)): 
    print i 

打印:

3 
2 
1 
0 

a=[5,2,1,4,3] 
for i in reversed(a): 
    print i 

打印

3 
4 
1 
2 
5 

您可以使用反转功能的名单。

>>> a = [1,2,3,4] 
>>> a.reverse() 
>>> a 
[4, 3, 2, 1] 

使用eumiro的答案一次反向(即如果你只需要它一次)。 否则使用我的方法,因为转换是在列表本身完成的。

一种方法涉及在迭代之前颠倒列表。虽然这种技术废物计算机周期,存储器,和代码行:

rseqn = list(seqn) 
rseqn.reverse() 
for value in rseqn: 
    print value 
+0

或只是'rseqn = seqn [:: - 1]' – 2012-02-20 10:50:45

这工作:

range(4, -1, -1) 
// [4, 3, 2, 1, 0] 

>>> for i in reversed(range(4)): 
... print(i) 
... 
3 
2 
1 
0 

len()返回一个列表的长度。因此,您可以使用len(a)-1获取列表a的最后一个索引。