У меня возникли проблемы с объединением в разные списки. Я пытаюсь получить список имен и список баллов, а также выбирая первые десятки учащихся с указанием имен.Как связать два списка
Я также не уверен, куда поместить функцию возврата в него
У меня возникли проблемы с объединением в разные списки. Я пытаюсь получить список имен и список баллов, а также выбирая первые десятки учащихся с указанием имен.Как связать два списка
Я также не уверен, куда поместить функцию возврата в него
Я предполагаю, что вы есть некоторые данные, которые выглядят как:
names = ['Alice', 'Bob', "Charlie", "David", "Eve"]
scores = [1, 2, 3, 4, 5]
и вы пытаетесь получить top n
(для удобства использования мы будем использовать n=2
) имена, отсортированные по количеству баллов. Существует множество способов сделать это, проще всего использовать словарь. Мы хотим, чтобы в итоге:
name_score_dict = {"Alice": 1,
"Bob": 2,
"Charlie": 3,
"David": 4,
"Eve": 5}
И мы можем сделать это несколькими различными способами, но zip
не важно, независимо от того, каким образом. Проще всего понять, вероятно, используя понимание диктата.
name_score_dict = {name:score for name,score in zip(names, scores)}
Более компактный, но, возможно, труднее понять, использует dict
конструктор
name_score_dict = dict(zip(names, scores))
Теперь все, что вам нужно сделать, это получить словарь в какой-то отсортированном состоянии. Там в bajillion различные вопросы по Stack Overflow о том, как сортировать словарь, который I will leave you to read, чтобы понять, почему то, что я делаю, имеет смысл, но:
sorted_d = sorted(name_score_dict.items(), key=lambda kv: kv[1], reverse=True)
Это должно дать вам что-то вроде:
[("Eve", 5), ("David", 4), ("Charlie", 3), ("Bob", 2), ("Alice", 1)]
Итак, отрежьте первые n
товаров, чтобы получить name, score
кортежи.
for name,score in sorted_d[:n]:
print("Name is {} and score is {}".format(name, score))
(это также использует string formatting, который стоит обучения по своему собственному)
Я думаю, что ваша последняя ссылка должна ref python 3.x docs не 2.x. –
@ ChristopherPearson ах, может также. Исправлена. –
жаль вязать. –
Показать код, пожалуйста? –
Этот вопрос не отвечает в текущей форме. По крайней мере, пожалуйста, укажите пример ввода и ожидаемого результата. Если у вас есть, пожалуйста, также покажите, что вы пробовали до сих пор. – 5gon12eder
Пожалуйста, добавьте дополнительную информацию! –