2015-06-23 2 views
-2

У меня возникли проблемы с объединением в разные списки. Я пытаюсь получить список имен и список баллов, а также выбирая первые десятки учащихся с указанием имен.Как связать два списка

Я также не уверен, куда поместить функцию возврата в него

+2

Показать код, пожалуйста? –

+2

Этот вопрос не отвечает в текущей форме. По крайней мере, пожалуйста, укажите пример ввода и ожидаемого результата. Если у вас есть, пожалуйста, также покажите, что вы пробовали до сих пор. – 5gon12eder

+0

Пожалуйста, добавьте дополнительную информацию! –

ответ

2

Я предполагаю, что вы есть некоторые данные, которые выглядят как:

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, который стоит обучения по своему собственному)

+0

Я думаю, что ваша последняя ссылка должна ref python 3.x docs не 2.x. –

+0

@ ChristopherPearson ах, может также. Исправлена. –

+0

жаль вязать. –

Смежные вопросы