从Python中的嵌套列表中获取或删除值
我从excel文件中得到112个值。我把它们转换成一个目录,然后是一个列表。它们是根据学生姓名进行的三次考试的分数 形式如下:从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
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}
}]