繁体   English   中英

从字典列表打印矩阵

[英]Print matrix from list of dictionaries

我刚开始用 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', 'grades': [1.5, 1.5, 1.5], '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))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM