Dictionnary qui retourne une liste d'une clé entré en argument en fonction

voix
-2

Voici un échantillon de mon Dictionnary avec 3 clés.

({'Musique': [['Musique', 'Shawn Phillips', 236, 236], ['Musique', L'avenue Royale fête l'été!, 237, 237], ['Musique', 'Perséides musicales', 215, 215], ['Musique', 'Gaétan Leclerc chante Félix et…', 229, 229], ['Musique', 'The Ring of Fire : a Johnny Cash Experience', 202, 202], ['Musique', Jazz'Art, 208, 210],  {'Théatre': [['Théâtre', 'Coup de théâtre à la joyeuse maison hantée', 189, 189], ['Théâtre', 'Les galoches du bonheur', 203, 203], ['Théâtre', 'Le voyage de Pixelle dans le monde virtuel', 217, 217], ['Théâtre', 'Marimba à la ferme de la bonne entente', 224, 224], ['Théâtre', 'Pattes et cravates', 196, 196], {'Danse': [['Danse', 'Initiation au tango argentin suivi de la milonga', 182, 231], ['Danse', 'Samedi de danser...', 188, 188], ['Danse', 'Rusdell Nunez (latino)', 191, 191]

Les clés sont: 'Musique','Théâtre' and 'Danse

Voici une liste des sous - listes d'événements et tous les int dans mon dictionnaire sont quand ces événements sont disponibles. Je dois retourner une liste avec le nom de tous les événements avec le bon type qui sont offerts à la date entereted dans l' argumentation day_year.

Voici les instructions complètes et la fonction:

def obtain_events_date_type(dictio_events_par_type, day_year, type_event): #first argument in the dictionnary so dont rly worry about it.

Ensuite, pour chaque événement du type droit comme argument type_event, si le début de l'événement ( ce qui est le premier int dans le dictionnaire est inférieur ou même que l'int et si la fin de l'événement (le dernier de chaque index que vous pouvait dire) est supérieur ou même que l'argument day_year, nous pouvons ajouter le nom de cet événement dans la liste des événements depuis son disponible ce jour - là. Je dois retourner cette liste d'événements.

Donc, si je suis entré dans

def obtain_events_date_type(creer_dictio, 236, 'Musique'):    
     #creer_dictio is my dictio in another function

Je besoin d'ajouter tous les événements qui sont disponibles le jour 236, pour les premières valeurs exemple dans mon dictionnaire dans ce poste mentionnés. Il est possible il y a plus de 1 événements le même jour. S'il n'y a aucun événement disponible le jour enterered dans l'argumentation, nous revenons une liste vide.

Qu'ai-je essayé:

Im fait familier avec des boucles et des trucs en python, mais je continue à obtenir une erreur de code sur les tuples et un tas de fonctionnement non autorisé sur Dictionnary.

Quelqu'un m'a dit que je pouvais créer une liste pour chaque type, mais im ayant toujours un temps pour atteindre tous les événements et int demandé dans les arguments.

Merci pour l'info / conseils!

MODIFIER :

liste_type_asked = []
for element in dictio_evenements_par_type:
    if 'Musique' in element:
        for jour in element:
            if jour_annee <= jour[2]:
                if jour_annee >= jour[3]:
                    liste_type_asked.append(element)    
return liste_type_asked

Erreur:

TypeError: '<=' not supported between instances of 'int' and 'str'
Créé 20/10/2018 à 02:41
source utilisateur
Dans d'autres langues...                            


1 réponses

voix
0

Vous pouvez utiliser la compréhension de la liste comme ceci:

def obtain_events_date_type(dictio_events_par_type, day_year, type_event):
    return [n for t in dictio_events_par_type for k, l in t.items() if k == type_event for _, n, s, e in l if s <= day_year <= e]

pour que:

events = [
    {
        'Musique': [
            ['Musique', 'Shawn Phillips', 236, 236],
            ['Musique', "L'avenue Royale fête l'été!", 237, 237],
            ['Musique', 'Perséides musicales', 215, 215],
            ['Musique', 'Gaétan Leclerc chante Félix et…', 229, 229],
            ['Musique', 'The Ring of Fire : a Johnny Cash Experience', 202, 202],
            ['Musique', "Jazz'Art", 208, 210]
        ]
    },
    {
        'Théâtre': [
            ['Théâtre', 'Coup de théâtre à la joyeuse maison hantée', 189, 189],
            ['Théâtre', 'Les galoches du bonheur', 203, 203],
            ['Théâtre', 'Le voyage de Pixelle dans le monde virtuel', 217, 217],
            ['Théâtre', 'Marimba à la ferme de la bonne entente', 224, 224],
            ['Théâtre', 'Pattes et cravates', 196, 196]
        ]
    },
    {
        'Danse': [
            ['Danse', 'Initiation au tango argentin suivi de la milonga', 182, 231],
            ['Danse', 'Samedi de danser...', 188, 188],
            ['Danse', 'Rusdell Nunez (latino)', 191, 191]
        ]
    }
]
print(obtain_events_date_type(events, 188, 'Danse'))

va afficher:

['Initiation au tango argentin suivi de la milonga', 'Samedi de danser...']
Créé 20/10/2018 à 04:25
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more