Member 13870077 Ответов: 1

Python -как достичь определенного значения в словаре


У меня есть такой словарь как этот:
({'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] 



Существует 3 вида этого словаря : 'Музыка','Театр','пляска'

Все int в моем словаре-это когда эти события доступны. Мне нужно вернуть список с названием всех событий с правильным типом, которые предлагаются на дату ввода в аргументе day_year

Вот полная инструкция и функция:

def obtain_events_date_type(dictio_events_par_type, day_year, type_event):



Для этого функция начинает с фильтрации
diction_events_par_type.
Затем для каждого события правильного типа в качестве аргумента type_event, если начало события(которое является первым int в словаре) ниже или даже на int и если конец события(последний in каждого индекса, который вы могли бы сказать) выше или даже больше аргумента day_year, мы можем добавить название этого события в список событий, так как оно доступно в этот день. мне нужно вернуть этот список событий.

Так что если я войду  
<pre>def obtain_events_date_type(dictio_events_par_type, 236, 'Musique'):


Мне нужно было бы добавить все события, доступные в день 236, например, первое, как в моем словаре, упомянутом в этом посте. Вполне возможно, что в один и тот же день происходит более 1 события.



Для упрощения вещей просто используйте dictio, который я вам дал, чтобы вам не нужно было фильтровать первый аргумент, мне просто нужно быть в состоянии нацелиться на каждый int в моем словаре, чтобы я мог добавить их в свой список, но он, похоже, работает как список, так как это словарь, и мне трудно.

Что я уже пробовал:

Попытался использовать индекс как Список для примера, если я хочу нацелиться на каждый индекс[2] и индекс[3] для моего дня года, который является int, но это не позволило бы мне, так как это словарь.

1 Ответов

Рейтинг:
6

CPallini

[Обновление]

dict = {'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]]}


def obtain_events_date_type(dictio_events_par_type, day_year, type_event):
  keys = list(dictio_events_par_type.keys())
  sellist = dict[type_event]
  avail = [x for x in sellist if day_year>=x[2] and day_year<=x[3] ]
  return avail

print( obtain_events_date_type(dict, 236, 'Musique'))
[/обновление]


Member 13870077

Извините за поздний ответ, это законный код. возможно, мне придется отредактировать несколько вещей, чтобы использовать их в своей функции, но я буду в порядке, я дам вам знать, Спасибо !

Member 13870077

Итак, ваш код работает, но мне трудно использовать его в своей функции. Кроме того, мне не нужны эти отпечатки, мне нужен только код, чтобы вернуть список доступных событий, чтобы ваши отпечатки казались хорошими. По некоторым причинам я получаю всевозможные ошибки кода о кортежах...

CPallini

Смотрите мое обновленное решение.

Member 13870077

Вы все еще теере Cpallini, у меня может быть вопрос, если вы не возражаете

CPallini

Теперь я здесь. :-)

Member 13870077

У меня есть ситуация, когда у меня есть это : [['Musique', 'Shawn Phillips', 236, 236], ['Musique', 'Jérôme Couture', 236, 236]] это мой последний список. я только хочу переделать глобальный список, поэтому я хочу сохранить только список, а не список подсписков этих элементов. есть ли какой-нибудь быстрый способ, где я могу это сделать ? мне нужно вернуть эту : ['музыка', 'Шон Филлипс', 236, 236, 'музыка', 'Жером Кутюр', 236, 236]