如何解决从字典列表打印矩阵
我刚开始用 Python 练习,必须用它打印下一个列表。
list = [{'Name': 'Jorge Luis','last_name': 'Arzuaga','age': 32,'Sex': 'M','grades': [1.5,1.5,1.5],'Prom': 1.5},{'Name': '2','last_name': '2','age': 2,'Sex': 'F','Prom': 1.5}]
这只是一个示例列表来自一个程序,该程序允许用户插入 n 个学生的值并将它们保存在该列表中。
我的问题是输出必须是这样的
--------------------ESTUDIANTE 1-----------------------------
Name: Jorge Luis Arzuaga
age: 32
Sex: M
grade 1: 2.0
grade 2: 2.5
grade 3: 2.3
average: 2.3
--------------------ESTUDIANTE 2-----------------------------
Name: 2 2
age: 2
Sex: F
grade 1: 1.5
grade 2: 1.5
grade 3: 1.5
average: 1.5
解决方法
尝试使用 f 字符串:
foo = f"bar"
最初将 list
读入数据帧。
import pandas as pd
df=pd.DataFrame(list)
for idx,row in df.iterrows():
print(f'-------------student{idx+1}------------------')
print(f"Name : {row['Name']+' '+row['last_name']}")
print(f"Age : {row['age']}")
print(f"Sex : {row['Sex']}")
print(f"Grade1 : {row['grades'][0]}")
print(f"Grade2 : {row['grades'][1]}")
print(f"Grade3 : {row['grades'][2]}")
print(f"Average : {round(sum(row['grades'])/len(row['grades']),2)}")
Output:
-------------student1------------------
Name : Jorge Luis Arzuaga
Age : 32
Sex : M
Grade1 : 1.5
Grade2 : 1.5
Grade3 : 1.5
Average : 1.5
-------------student2------------------
Name : 2 2
Age : 2
Sex : F
Grade1 : 1.5
Grade2 : 1.5
Grade3 : 1.5
Average : 1.5
,
您可以遍历字典项:
for m,i in enumerate(list2,start=1):
print(f'------------------Student {m}-------------------')
for key,val in i.items():
if isinstance(val,list):
for i,j in enumerate(val,start=1):
l_c=val.copy()
print(f"Grade {i} = {j}")
else:
print(key," : ",val)
print("Average : ",round(sum(l_c)/len(l_c),2))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。