Сравнение значений словаря из загруженного словаря - PullRequest
0 голосов
/ 16 сентября 2018

Мне нужно прочитать простой текстовый файл, который состоит из следующего:

hoogste tijd
een domheid
. zouden

Слова должны быть разделены на q1 и q2 для каждой строки: q1 = hoogste, q2 = tijd

Затем программа должна проверить, есть ли q1 и q2 в каком-либо из ключей словаря, если это правда, она должна извлечь определенные значения из этого словаря.

Значения (позиции) после слов и идентификаторов - это то, что мне нужно использовать: 0, 39, 1, 2, 41 и т. Д. (Показано в выводе)

Я должен проверить, предшествует ли q1 q2 где-либо в словаре, поэтому, если 'hoogste' находится в позиции 39, а 'tijd' находится в позиции 40, он должен вернуть идентификатор этого словаря, например: 1035421930541772800.

import pickle
import sys
def main():
    qlist = []
    db = pickle.load(open("words_ex4","rb"))
    #print(db)
    queries = open("ex5.txt").read()
    #queries_lines = queries.readlines()
    print(queries)


    for q in queries.splitlines():

        wordlists = q.split()
        q1 = wordlists[0]
        q2 = wordlists[1]
        if q1 and q2 in db.keys():
            print(db.values())
            #print(len(db.values()))

Кажется, что переменные теряются при использовании pickle для сохранения / загрузки этого словаря.

Вывод на печать (дБ):

{'RT': ['1035421930541772800', '1035421931321864192', 0, 39], '@AfshinEllian1': ['1035421930541772800', 1], ':': ['1035421930541772800', '1035421931321864192', 2, 41], 'Kennelijk': ['1035421930541772800', 3], 'vinden': ['1035421930541772800', 4], 'ze': ['1035421930541772800', 5], 'daar': ['1035421930541772800', 6]

Я знаю, что могу использовать set (my_dict.values ​​()) и использовать пересечение для позиций, но я не могу понять шаги, следующие за этим.

...