从Python中的嵌套列表中获取或删除值

从Python中的嵌套列表中获取或删除值,python,list,nested,Python,List,Nested,我从excel文件中得到112个值。我把它们转换成一个目录,然后是一个列表。它们是根据学生姓名进行的三次考试的分数 形式如下: grade = ["Mike", {"First": 0.9134344089913918, "Second": 0.9342180467620398, "Third": 0.8703466591191937}] ["Lisa", {"First": 0.8940552022848847, "Second": 0.9342180467620398, "Third

我从excel文件中得到112个值。我把它们转换成一个目录,然后是一个列表。它们是根据学生姓名进行的三次考试的分数

形式如下:

    grade = ["Mike", {"First": 0.9134344089913918, "Second": 0.9342180467620398, "Third": 0.8703466591191937}]
["Lisa", {"First": 0.8940552022848847, "Second": 0.9342180467620398, "Third": 0.881441786523737}]
["James", {"First": 0.8324328746220233, "Second": 0.9342180467620398, "Third": 0.683570699129642}]
以上是前三组值。 我的目标是从列表中获取第一个考试值。 结果应该是这样的:

["Mike", {"First": 0.9134344089913918}]
["Lisa", {"First": 0.8940552022848847}]
["James", {"First": 0.8324328746220233}]
两种方式。a) 删除第二个和第三个检查值。b) 只需获取第一个考试值

有人能帮我吗。因为它不是一个典型的列表…但它不是一个命令。我使用 打印类型(等级)…它显示一个列表

多谢各位

grade = [["Mike", {"First": 0.9134344089913918, "Second": 0.9342180467620398, "Third": 0.8703466591191937}],["James", {"First": 0.8324328746220233, "Second": 0.9342180467620398, "Third": 0.683570699129642}]]

newdict=[]

for person,marks in grade:
    print marks
    newdict.append([person,{'First':marks['First']}])

#output [['Mike', {'First': 0.9134344089913918}], ['James', {'First': 0.8324328746220233}]]

请确保你的成绩应该是一份包含个人和分数的列表,就像我的一样。这样我们就可以轻松地检索值

将你的初始结构表示为dict(以及结果结构)更为自然

现在,使用听写理解,为每个学生创建一个新的一项听写:

first_grades = {
    name: { 'First': grades_dict['First'] }
    for name, grades_dict in all_grades.items()
}
以下是对这一概念的概括:

first_grades = {
    name: {
        grade_key: grades_dict[grade_key]
        for grade_key in ( 'First', )
    }
    for name, grades_dict in all_grades.items()
}
你最终会得到:

{'James': {'First': 0.8324328746220233},
 'Lisa': {'First': 0.8940552022848847},
 'Mike': {'First': 0.9134344089913918}}

我不确定我是否理解您的数据结构。你在列清单之前说你有一份口述。也许你可以用这个:

数据结构

>>> grade
{'Lisa': {'Third': 0.881441786523737, 'First': 0.8940552022848847, 'Second': 0.9
342180467620398}, 'Mike': {'Third': 0.8703466591191937, 'First': 0.9134344089913
918, 'Second': 0.9342180467620398}}
结果

>>> [{key:{'First':value['First']}} for key,value in grade.items()]
[{'Lisa': {'First': 0.8940552022848847}}, {'Mike': {'First': 0.9134344089913918}
}]

试过什么吗?考虑一下结构,您有一个列表,其中包含一个字符串作为第一个元素,第二个元素包含一个dict,如果您知道如何访问dict,那么如果您考虑it@RookiePythonTMZ,在这种情况下,请随意投票和/或接受有用的答案
>>> [{key:{'First':value['First']}} for key,value in grade.items()]
[{'Lisa': {'First': 0.8940552022848847}}, {'Mike': {'First': 0.9134344089913918}
}]