Python 返回在函数参数中输入的键列表的词汇表
这是一个我的字典样本,有三个键Python 返回在函数参数中输入的键列表的词汇表,python,loops,dictionary,Python,Loops,Dictionary,这是一个我的字典样本,有三个键 ({'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
({'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]
关键是:‘音乐’、‘音乐’和‘舞蹈’
这是事件子列表的列表,我的字典中的所有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.
然后,对于作为参数类型\事件的正确类型的每个事件,如果事件的开始(即词汇表中的第一个int)低于或甚至高于int,并且如果事件的结束(即每个索引的最后一个in)高于或甚至高于参数日期\年,我们可以将此事件的名称添加到事件列表中,因为它在当天可用。我需要返回事件列表
所以如果我进去
def obtain_events_date_type(creer_dictio, 236, 'Musique'):
#creer_dictio is my dictio in another function
我需要添加236天的所有事件,例如本文中提到的我的词汇表中的第一个值。同一天可能有1个以上的活动。如果在参数中输入的当天没有可用的事件,我们将返回一个空列表
我试过什么:
实际上我对python中的循环和其他东西很熟悉,但我不断发现关于元组的代码错误,以及一些在字典上不允许的操作
有人告诉我,我可以为每种类型创建一个列表,但我仍然有时间访问参数中的每个事件和int
谢谢你的信息/提示
编辑:
错误:
TypeError: '<=' not supported between instances of 'int' and 'str'
您可以这样使用列表理解:
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]
将输出:
['Initiation au tango argentin suivi de la milonga', 'Samedi de danser...']
你能把你实际尝试过的包括错误的东西包括进去吗?所以不是代码编写服务。@n8sty edited,我也得到TypeError:元组索引必须是整数,而不是强制的,jour_annee和jour[2]中的一个是字符串,另一个是数字,不能将字符串与数字进行比较。找出哪一个是哪一个,并将字符串转换为数字。@DYZ好的,但我需要知道如何才能达到一个单词NaryTanks的索引,可能就是这样。如果我还需要什么,或者如果我对返回有任何疑问,我会告诉你,以便我理解,谢谢!
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...']