首先按键然后按值排序存储的文件。没有导入的模块

问题描述 投票:-2回答:1

因此,我正在使用来自CSV文件的信息来创建一些对象,例如:

def ajouter_morceaux_csv(db,csv):
    data_csv= read_data(csv)

    for i in range(len(data_csv[0])):
        titre = data_csv[0][i]
        année = data_csv[1][i]
        artistes = data_csv[2][i]
        style= data_csv[3][i]
        guitare = data_csv[4][i]
        note = data_csv[5][i]
        with shelve.open(db) as db_data:
            del(db_data[str(data_csv[0][i])])
            db_data[str(data_csv[0][i])]= Data_Song(titre,année,artistes,style,guitare,note=note)

然后我需要打印出该“数据库”。我需要先按标题将其打印,然后再按“ note”的值进行打印]

我使用标题作为键名,这样可能会更容易,但是我仍然不知道如何通过对象的值注释对它进行排序。

这是我的打印方式:

def afficher_tout(db):
    with shelve.open(db) as db_data:
        klist = list(db_data.keys())
        klist.sort()
        print("Base de données musicales complète :")
        print()
        for key in klist:
            print("Titre: " + str(db_data[key].titre))
            print("Année: " + str(db_data[key].année))
            print("Artistes: " + str(db_data[key].artistes))
            print("Style: " + str(db_data[key].style))
            print("Guitare: " + str(db_data[key].guitare))
            print("note: " + str(db_data[key].note))
            print()

除了shelfve,os,sys外,我无法将任何模块导入此项目

python python-3.x shelve
1个回答
1
投票

您可以为.sort()sorted()提供键功能。

klist = sorted(db_data.keys(), key=lambda k: (db_data[k].titre, db_data[k].note))
© www.soinside.com 2019 - 2024. All rights reserved.