Как нарезать словарь python на основе наличия указанного элемента c - PullRequest
0 голосов
/ 20 июня 2020

У меня есть такой словарь:

mydictionary = {0: header,
1: thumbnail, 
2: paragraph, 
3: header, 
4: thumbnail,
5: thumbnail, 
6: paragraph, 
7: paragraph}

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

for x in mydictionary:
   if paragraph in mydictionary:
      find all the previous thumbnails up to previous paragraph

другими словами в параграфе 2, он вернет элемент 1

в параграфе 6, он вернет элементы 4 и 5

в параграфе 7, ничего не будет возвращено

1 Ответ

1 голос
/ 20 июня 2020

Вы можете сделать что-то вроде этого:

mydictionary = {0: "header",
                1: "thumbnail", 
                2: "paragraph", 
                3: "header", 
                4: "thumbnail",
                5: "thumbnail", 
                6: "paragraph", 
                7: "paragraph"}

prev_thumbnails = []
for key, value in mydictionary.items():
    if value == "thumbnail":
        prev_thumbnails.append(key)
    elif value == "paragraph":
        print(prev_thumbnails)
        prev_thumbnails = []
#returns
#[1]
#[4, 5]
#[]
...