如何使用python自动创建词典?

时间:2018-05-17 21:05:39

标签: python list dictionary automated-deployment

我正在做初学者Python课程,目的是制作一堆词典。

  
      
  1. 创建三个词典:lloyd,alice和tyler。
  2.         

    为每个词典提供“名称”,“家庭作业”,“小测验”和   “测试”。

         

    让“name”键成为学生的名字(即劳埃德的名字   应该是“Lloyd”),其他键应该是一个空列表(我们会   尽快填写这些清单!)

我通过以下方式做到了这一点:

def make_dict(list_of_names):
  for names in list_of_names:
    names = {
      "name": names,
      "homework" : [],
      "quizzes" : [],
      "tests" : []
  }

list_of_names = ["lloyd", 'alice', 'tyler']

make_dict(list_of_names)

为什么这不起作用?它应该工作,只是Codeacademy开发区域不允许这个工作吗?我意识到我有点多余,而且我可以非常直接地做到这一点,并故意在我如何做到这一点上发挥创意。

在任何情况下,基于输入列表制作字典的自动化方法是什么?

4 个答案:

答案 0 :(得分:6)

你在每个循环中创建了一个名为names的字典,但实际上并没有用它做任何事情 -

def make_dict(list_of_names):
    results = []
    for names in list_of_names:
        names = {
            "name": names,
            "homework" : [],
            "quizzes" : [],
            "tests" : []
        }
        results.append(names)
    return results

list_of_names = ["lloyd", 'alice', 'tyler']

my_dicts = make_dict(list_of_names)

这会跟踪您创建的names个词组,然后在最后将它们提供给您。

答案 1 :(得分:3)

  

根据列表制作字典的自动化方法是什么?   输入

您可以在此处使用词典理解。生成器可以避免使用样板列表构造代码。在此解决方案中,列表中的每个名称都有<div class="container"> <ul class="status-bar"> <li> <div>1</div> <div>foo</div> </li> <li> <div>2</div> <div>b</div> </li> <li> <div>3</div> <div>bazjkhj j</div> </li> <li> <div>4</div> <div>qx</div> </li> <li> <div>5</div> <div>blahblahblah</div> </li> </ul> </div>项。调用yield然后耗尽生成器,我们可以将列表分配给变量list

my_dicts

答案 2 :(得分:2)

你正在制作三本词典;但是,每一个都通过分配给同一个变量names来覆盖前一个,最后一个是垃圾收集,因为对它的唯一引用是当make_dict返回时超出范围的局部变量。

您只需要返回创建的dict。对于本练习,听起来并不像你真的需要一个循环。

def make_dict(name):
    return {
      "name": name,
      "homework" : [],
      "quizzes" : [],
      "tests" : []
    }

lloyd = make_dict("lloyd")
alice = make_dict("alice")
tyler = make_dict("tyler")

答案 3 :(得分:-1)

Vegetables={"tamato":40,"carrot":50,"onion":60,"green chillies":20,"red chillies":40,"capsicum":20,"radish":30,"drumstick":40,"beetroot":50,"peas":90}
Print(vegetables)