2017-10-20 61 views

回答

0
numbers_list = [5,4,12,7,15,9] 

for index in range(len(numbers_list)): 
    print(numbers_list[(index + 1) * - 1]) 

不知道这是非常“Python化”

随着列表的indeces被否定,您可以访问的元素以相反的顺序。

Python中的最后一个索引是list [-1]等等,直到第一个索引为列表长度-1(在这种情况下加一个以使负数接近0)。

+0

您能解释一下吗? –

+0

首先,我得到了列表的长度,然后遍历它的范围,同时将-1乘以使它们为负,并访问“反面”中的元素。 –

+0

但我想要它直到4 –

0

使用reversedstr.join

numbers = [5, 4, 12, 7, 15, 9] 
print(",".join(str(n) for n in reversed(numbers))) # 9,15,7,12,4,5 

str.join远远大于在性能方面使用mystring += "something"建立自己的字符串更好。 How slow is Python's string concatenation vs. str.join?提供了有关这方面的有趣见解。

我还可以写一个列表理解建立一个中间表是这样的:

reversed_string = [str(n) for n in reversed(numbers)] 
print(",".join(reversed_string)) 

但是写列表中理解意味着我们在内存中存储的两倍列表(原来和“strigified”一节) 。使用生成器将动态计算str.join的元素,这与经典迭代器的做法有点相同。