如何使用python从数据结构中提取字典?

2024-04-20 14:05:27 发布

您现在位置:Python中文网/ 问答频道 /正文

这是一张名为grade\u list的表格,它将学生的名字映射到他们考试成绩的列表中。等级应该从字符串转换成整数。例如,grade_列出['Thorny']==[100,90,80]。有人能帮我吗?你知道吗

 grades = [ #here is the table
    ['Student', 'Exam 1', 'Exam 2', 'Exam 3'],
    ['Thorny', '100', '90', '80'],
    ['Mac', '88', '99', '111'],
    ['Farva', '45', '56', '67'],
    ['Rabbit', '59', '61', '67'],
    ['Ursula', '73', '79', '83'],
    ['Foster', '89', '97', '101']
]

Tags: the字符串列表hereis整数名字学生
3条回答

只需使用dict遍历列表:

grades_dict = dict((x[0],x[1:]) for x in grades[1:])
grades_dict

输出:

{'Farva': ['45', '56', '67'],
 'Foster': ['89', '97', '101'],
 'Mac': ['88', '99', '111'],
 'Rabbit': ['59', '61', '67'],
 'Thorny': ['100', '90', '80'],
 'Ursula': ['73', '79', '83']}

grades_dict['Thorny']

['100', '90', '80']

只要运行这段代码。你知道吗

grades = [ #here is the table
    ['Student', 'Exam 1', 'Exam 2', 'Exam 3'],
    ['Thorny', '100', '90', '80'],
    ['Mac', '88', '99', '111'],
    ['Farva', '45', '56', '67'],
    ['Rabbit', '59', '61', '67'],
    ['Ursula', '73', '79', '83'],
    ['Foster', '89', '97', '101']
]
dict = {}
for student_data in grades:
   if student_data[0] == "Student":
     continue
   else:
     temp_list = []
     temp_list.append(int(student_data[1]))
     temp_list.append(int(student_data[2]))
     temp_list.append(int(student_data[3]))
     dict[student_data[0]] = temp_list

print(dict)

使用将值映射为整数的字典理解:

{x[0]: list(map(int, x[1:])) for x in grades[1:]}

示例

grades = [ #here is the table
    ['Student', 'Exam 1', 'Exam 2', 'Exam 3'],
    ['Thorny', '100', '90', '80'],
    ['Mac', '88', '99', '111'],
    ['Farva', '45', '56', '67'],
    ['Rabbit', '59', '61', '67'],
    ['Ursula', '73', '79', '83'],
    ['Foster', '89', '97', '101']
]

print({x[0]: list(map(int, x[1:])) for x in grades[1:]})

# {'Thorny': [100, 90, 80], 
#  'Mac': [88, 99, 111],
#  'Farva': [45, 56, 67],
#  'Rabbit': [59, 61, 67],
#  'Ursula': [73, 79, 83],
#  'Foster': [89, 97, 101]}

这将输出一个以名称作为键的字典,并输出一个标记列表,每个标记都转换为整数作为该键的值。你知道吗

相关问题 更多 >