这是我的字典中带有3个键的样本。
({'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]
键为:'Musique','Théâtre' and 'Danse
这是事件子列表的列表,我的词典中的所有int都是这些事件可用时。我需要返回一个列表,列出所有在参数day_year
输入日期提供的正确类型的事件。
这里是完整的说明和功能:
def obtain_events_date_type(dictio_events_par_type, day_year, type_event): #first argument in the dictionnary so dont rly worry about it.
然后,对于类型正确的每个事件作为参数type_event
,如果事件的开始(字典中的第一个int小于或甚至小于int,并且事件的结束(您可以说出的每个索引的最后一个)甚至比参数day_year
更高,甚至可以将事件的名称添加到事件列表中,因为它在这一天就可用了。我需要返回该列表事件。
所以,如果我输入
def obtain_events_date_type(creer_dictio, 236, 'Musique'):
#creer_dictio is my dictio in another function
我需要添加第236天可用的所有事件,例如本文中提到的词典中的第一个值。同一天可能发生1个以上的事件。如果在输入参数的当天没有可用的事件,我们将返回一个空列表。
我尝试了什么:
我实际上熟悉python中的循环和东西,但我不断收到有关元组和字典上不允许的操作的代码错误。
有人告诉我,我可以为每种类型创建一个列表,但是我仍然有时间了解每个事件并在参数中询问int。
感谢信息/提示!
编辑:
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
错误:
TypeError: '<=' not supported between instances of 'int' and 'str'
答案 0 :(得分:0)
您可以像这样使用列表理解:
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]
这样:
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'))
将输出:
['Initiation au tango argentin suivi de la milonga', 'Samedi de danser...']