How to reverse alphabetical order

Viewed 14437

I'm trying to make the names descend from z-a. I'm trying to sort the list in reverse alphabetical order and then loop through the entire list to print each celebrity's name on its own line

def main():
   print('Celebrities  known by one name:')
   drake = ['Drake']
   BE = ['Beyonce']
   RI = ['Rihanna']
   BO = ['Bono']
   print('Drake','Beyonce','Rihanna', 'Bono')
   a = input('Enter another one name celebrity ')
   b = input('Enter another one name celebrity ')
   c = input('Enter another one name celebrity ')
   d = [a,b,c,drake,BE,RI,BO]
   f = reversed(d)
   print('Celebrities in Reverse Alpha Order')
   for d in f:
      print(d)
main()

So far I'm getting is this

['Bono']
['Rihanna']
['Beyonce']
['Drake']
Eminem
Adele
Pink

Its suppose to look like

Celebrities  known by one name:
Drake Beyonce Rihanna Bono
Enter another one name celebrity Adele
Enter another one name celebrity Eminem
Enter another one name celebrity Pink
Celebrities in Reverse Alpha Order
Rihanna
Pink
Eminem
Drake
Bono
Beyonce
Adele
5 Answers

you can user sorted..reverse as per doc

def main():
   print('Celebrities  known by one name:')
   drake = ['Drake']
   BE = ['Beyonce']
   RI = ['Rihanna']
   BO = ['Bono']

   a = input('Enter another one name celebrity ')
   b = input('Enter another one name celebrity ')
   c = input('Enter another one name celebrity ')
   d = [a,b,c,drake,BE,RI,BO]
   f = sorted(d,reverse=True)
   print('Celebrities in Reverse Alpha Order')
   for d in f:
      print(d)
main()

pythons inbuilt sorting function has a reverse parameter, see https://wiki.python.org/moin/HowTo/Sorting :

Ascending and Descending

Both list.sort() and sorted() accept a reverse parameter with a boolean value. This is using to flag descending sorts. For example, to get the student data in reverse age order:

sorted(student_tuples, key=itemgetter(2), reverse=True) [('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10)]

sorted(student_objects, key=attrgetter('age'), reverse=True) [('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10)]

in Python reverse alphabetical order is code example

You can try this:

l = ['Bono', 'Rihanna', 'Beyonce', 'Drake', 'eminem', 'adele', 'pink']
import string
final_list = sorted(l, key=lambda x:26 - string.ascii_lowercase.index(x[0].lower()))

Output:

['Rihanna', 'pink', 'eminem', 'Drake', 'Bono', 'Beyonce', 'adele']

We can use:

names = sorted(names, key=str.lower,reverse=True)

Full example:

def main():
    print('Celebrities  known by one name:')
    names = ['Drake','Beyonce','Rihanna','Bono']
    print(" ".join(names))
    for _ in range(3):
        names.append(input('Enter another one name celebrity '))
    names = sorted(names, key=str.lower,reverse=True)
    print('Celebrities in Reverse Alpha Order')
    for name in names:
        print(name)

main()
def names(name_list):

    name_list.sort()

    **name_list.reverse()**

    return(name_list)
Related