从字典列表打印矩阵

问题描述

我刚开始用 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))

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...