Как отсортировать список имен и возрастов, введенных пользователем, в средний возраст, самый высокий и самый низкий возраст с соответствующим именем? - PullRequest
0 голосов
/ 26 апреля 2019

Напишите программу, которая предложит пользователю ввести серию имен и возрастов. (Используйте поддельное имя «Конец», чтобы отметить конец последовательности значений.) После того, как значения были введены, выведите средний возраст, а также фамилии и возраст тех людей, у которых самый высокий и самый низкий возраст.

У меня есть код, который выдаст средний, самый старый и самый молодой возраст, но без соответствующего имени. Я понятия не имею, как заставить это работать от пользовательского ввода. Я использую последнюю версию Python и IDE PyCharm.

#name = input("Enter a series of names with corresponding ages:")

name = ["john", 25, "james", 32, "tanner", 62, "laura", 41, "christine", 21]
pairs = dict([tuple(name[i:i+2]) for i in range(0, len(name), 2)])

avg_salary = sum(pairs.values()) / len(pairs)
print("Average Age: %f" % (avg_age))

high_age = max(pairs.values())
print("Highest Age: %f" % (high_age))

low_age = min(pairs.values())
print("Lowest Age of: %f" % (low_age))

1 Ответ

0 голосов
/ 26 апреля 2019

Если вы используете Python3, вы можете использовать items() метод для dict

#name = input("Enter a series of names with corresponding ages:")

import numpy as np

name = ["john", 25, "james", 32, "tanner", 62, "laura", 41, "christine", 21]
pairs = dict([tuple(name[i:i+2]) for i in range(0, len(name), 2)])

avg_age = np.mean(pairs.values())
print("Average Age: %.2f" % (avg_age))

high_age = max(pairs.items())
print("Highest Age: %i" % (high_age[1]) + " and their name is " + high_age[0])

low_age = min(pairs.items())
print("Lowest Age: %i" % (low_age[1]) + " and their name is " + low_age[0])

Результат:

Average Age: 36.20
Highest Age: 62 and their name is tanner
Lowest Age: 21 and their name is christine

Если вы используетеPython 2, тогда этот вопрос может вас заинтересовать: В чем разница между dict.items () и dict.iteritems ()? особенно первый ответ (принятый ответ)

...