Мне нужно прочитать простой текстовый файл, который состоит из следующего:
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 ()) и использовать пересечение для позиций, но я не могу понять шаги, следующие за этим.