Форум сайта python.su
Всем, привет! Помогите, пожалуйста, написать программу, которая бы просила пользователя ввести сначала количество имён, а затем расставляла бы их в алфавитном порядке. Вот, собственно задание, но на английском: Create a Python program to prompt the user to enter a number of names, then print out all the names in alphabetical order of the last names. If the last names are the same, then the first names are compared.
и пример:
How many names do you want to enter? 5
Enter name #1: Bill Clinton
Enter name#2: Michael Jackson
Enter name#3: Tony Blair
Enter name#4: Janet Jackson
Enter name#5: Oprah Winfrey
The names in order are:
Blair, Tony
Clinton, Bill
Jackson, Janet
Jackson, Michael
Winfrey, Oprah

Офлайн
#!/usr/bin/env python3
def sort(lst):
lst.sort(key=lambda i: i[1])
lst.sort(key=lambda i: i[0])
n = int(input('How many names do you want to enter? '))
names = []
for i in range(n):
name = input('Enter name #{0}: '.format(i + 1)).split()
names.append([name[1], name[0]])
sort(names)
print('The names in order are:')
for i in names:
print(', '.join(i))
[guest@localhost tests]$ ./t.py
How many names do you want to enter? 5
Enter name #1: Bill Clinton
Enter name #2: Michael Jackson
Enter name #3: Tony Blair
Enter name #4: Janet Jackson
Enter name #5: Oprah Winfrey
The names in order are:
Blair, Tony
Clinton, Bill
Jackson, Janet
Jackson, Michael
Winfrey, Oprah
[guest@localhost tests]$
Отредактировано (Ноя. 25, 2011 08:04:30)
Офлайн