2
def make_scores_dict(names, scores):
    for i in range(len(names)):
        scores_dict[names[i]] = scores[i]

    return scores_dict



names=['Joe', 'Tom', 'Bob', 'Emily', 'Sue']
scores=[10, 23, 13, 18, 12]

dict = make_scores_dict(names, scores)

print #How do I print out a specific name? This is where I'm stuck at

本质上,我需要获取 2 个列表并制作带有键/值的字典。我被困在如何打印出指定的名称上。例如,如果我想打印出 Emily 和她的值,我该怎么做?

4

2 回答 2

3

你可以做

def make_scores_dict(names, scores):
    return dict(zip(names, scores))

要解决您正在尝试做的事情:

def make_scores_dict(names, scores):
    scores_dict = {}
    for i in range(len(names)):
        scores_dict[names[i]] = scores[i]

    return scores_dict

或者

def make_scores_dict(names, scores):
    scores_dict = {}
    for i, name in enumerate(names):
        scores_dict.update({name: scores[i]})
    return scores_dict
于 2013-10-04T02:21:24.773 回答
2

dict将名称映射到分数后,您可以使用[]

>>> print scores['Emily']
18

请注意,我已重命名dictscoresdict是字典类型的名称,最好不要覆盖它。一旦你改变了它,就有一种更简洁的方法来创建字典:

>>> scores = dict(zip(names, scores))

zip成对组合任意数量的可迭代对象,例如:

>>> zip([1, 2, 3], [4, 5, 6])
[(1, 4), (2, 5), (3, 6)]

碰巧dict可以采用这种格式的元组列表来创建字典:

>>> dict([('one', 1), ('two', 2)])
{'one': 1, 'two': 2}
于 2013-10-04T02:23:11.430 回答