从字典列表打印矩阵

2024-10-02 02:26:57 发布

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

我刚开始使用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个os学生的值,并将其保存在该列表中

我的问题是输出必须是这样的

 --------------------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

Tags: name程序列表agelastgradegradesaverage
3条回答

尝试使用f字符串:

foo = f"bar"

您可以迭代字典项:

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))

最初将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

相关问题 更多 >

    热门问题