2017-10-20 54 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的元素,這與經典迭代器的做法有點相同。