Εκτύπωση μιας λίστας σε αντίστροφη σειρά με την range()?

Πώς μπορείτε να δημιουργήσετε την ακόλουθη λίστα με την range() στην Python;

[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
Λύση

χρησιμοποιήστε τη συνάρτηση reversed():

reversed(range(10))

Είναι πολύ πιο ουσιαστικό.

Επικαιροποίηση:

Αν θέλετε να είναι μια λίστα (όπως τόνισε ο btk):

list(reversed(range(10)))

Ενημέρωση:

Εάν θέλετε να χρησιμοποιήσετε μόνο την range για να επιτύχετε το ίδιο αποτέλεσμα, μπορείτε να χρησιμοποιήσετε όλες τις παραμέτρους της. range(start, stop, step)

Για παράδειγμα, για να δημιουργήσετε μια λίστα [5,4,3,2,1,0], μπορείτε να χρησιμοποιήσετε τα εξής:

range(5, -1, -1)

Μπορεί να είναι λιγότερο διαισθητικό, αλλά όπως αναφέρουν τα σχόλια, αυτό είναι πιο αποδοτικό και η σωστή χρήση του εύρους για αντίστροφη λίστα.

Σχόλια (11)

Χρησιμοποιήστε την ενσωματωμένη λειτουργία 'range'. Η υπογραφή είναι range(start, stop, step). Αυτό παράγει μια ακολουθία που δίνει αριθμούς, ξεκινώντας από την start και τελειώνοντας αν έχει επιτευχθεί η stop, εξαιρώντας την stop.

>>> range(9,-1,-1)   
    [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
>>> range(-2, 6, 2)
    [-2, 0, 2, 4]

Στην Python 3, αυτό παράγει ένα αντικείμενο range χωρίς λίστα, το οποίο λειτουργεί ουσιαστικά όπως μια λίστα μόνο για ανάγνωση (αλλά χρησιμοποιεί πολύ λιγότερη μνήμη, ειδικά για μεγάλες σειρές).

Σχόλια (4)