Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 创建二维词典并为其编制索引_Python_List_Dictionary - Fatal编程技术网

Python 创建二维词典并为其编制索引

Python 创建二维词典并为其编制索引,python,list,dictionary,Python,List,Dictionary,这只是我制作的一个快速片段,因为我的代码太复杂了,无法进入,但我基本上想要的是: 以名称作为键,以空列表作为值的dict 在那张空名单上附加一系列问题 这些问题是关键,它们的值是一个空列表 在空列表中附加一个答案列表 我能够做到这一点,但我的问题是,要引用他们询问的键或为其分配任何内容,除了键之外,我还必须引用该列表中的索引 他们需要在列表中,因为每个名字都有一个问题列表,每个问题都有一个答案列表,如下所示: 这里的代码显示了我是如何制作dict并附加到它的,在实际代码中,这是在循环中完成的,但

这只是我制作的一个快速片段,因为我的代码太复杂了,无法进入,但我基本上想要的是:

  • 以名称作为键,以空列表作为值的dict
  • 在那张空名单上附加一系列问题
  • 这些问题是关键,它们的值是一个空列表
  • 在空列表中附加一个答案列表
  • 我能够做到这一点,但我的问题是,要引用他们询问的键或为其分配任何内容,除了键之外,我还必须引用该列表中的索引

    他们需要在列表中,因为每个名字都有一个问题列表,每个问题都有一个答案列表,如下所示:

    这里的代码显示了我是如何制作dict并附加到它的,在实际代码中,这是在循环中完成的,但这是它的jist:

    有没有一种方法可以避免将问题列表按编号编入索引?(这样我就可以像上面那样做而不会出错)

    更新:

    我开始意识到这是一件好事,因为数字索引是一种快速检查问题及其答案的方法。如果我索引[0],它将显示单个问题及其所有答案。这是有帮助的,因为问题是句子,输入它们可能会很痛苦

    我仍然很好奇我的问题是否有答案,所以无论如何我都会发布这个

    文本代码:

    >names=[“约翰”、“马克”、“杰克”]
    >namesDict={x:[]表示名称中的x}
    >名言
    {'mark':[],'jake':[],'john':[]}
    >namedict[“mark”].追加({“question”:[]})
    >名言
    {'mark':[{'question':[]}],'jake':[],'john':[]}
    >namedict[“标记”][“问题”]。附加(“答案”)
    回溯(最近一次呼叫最后一次):
    文件“”,第1行,在
    TypeError:列表索引必须是整数,而不是str
    >namedict[“标记”][0][“问题”]。附加(“答案”)
    >名言
    {'mark':[{'question':['answer']}],'jake':[],'john':[]}
    
    我想你在这里要找的是跳过这些列表,然后放一些字典。它看起来像这样:

    names = ["john","mark","jake"]
    namesDict = {x: {} for x in names}
    
    namesDict['mark']['question1'] = []
    
    namesDict['mark']['question1'].extend(('ans1_1', 'ans1_2', 'ans1_3'))
    print(namesDict)  # {'john': {}, 'mark': {'question1': ['ans1_1', 'ans1_2', 'ans1_3']}, 'jake': {}}
    
    namesDict['mark']['question2'] = []
    namesDict['mark']['question2'].extend(('ans2_1', 'ans2_2', 'ans2_3'))
    print(namesDict)  # {'john': {}, 'mark': {'question1': ['ans1_1', 'ans1_2', 'ans1_3'], 'question2': ['ans2_1', 'ans2_2', 'ans2_3']}, 'jake': {}}
    

    唯一阻碍您的是如果
    namedict['mark']
    将有多个值与
    question1

    匹配,请将您的代码和所有相关信息以文本形式发布,而不是图像@Thierrylahuille已更新。忘记了,所以用颜色表示代码的格式,不想让它太混乱。引用列表中特定项目的唯一方法是指定其索引,因此我认为您的问题没有答案。tbh这个问题本身太宽泛和模糊。请让它简单,并提出相应的代码!