#python #dictionary
Вопрос:
Я хочу узнать, существует ли соответствующая последовательность в какой-либо паре ключ-значение, а также как определить правильный ключ, который включает последовательность, и каковы условия, которые приводят к ее реализации и печати в коде python. Здесь я добавляю последовательность для вашей справки, которую я хочу определить как последовательность 0,1,2,3
mydir = {
"p1":[0,0,1,1,2,2,3,3], #not includes the relavent sequence
"p2":[0,0,1,2,3,4,5], #includes the relavent sequence
"p3":[0,1] #not includes the relavent sequence
}
if(#condition for identify p2 as a correct key):
print(#p2 Identified!)
else:
print("Not Identified!")
Комментарии:
1. Почему вы используете оба
python2
python3
тега и? Это потому, что вы хотите знать ответ как для python2, так и для python3?2. Возможно, вы ищете государственную машину для реализации. Если первый элемент вашей последовательности совпадает с тем, который вы просматриваете в данный момент, вы проверяете, соответствует ли следующий, пока либо ваша последовательность не будет найдена, либо существует разница между вашей последовательностью и следующим элементом. Я уверен, что есть более питонический способ сделать это, но он помогает вам понять, что именно происходит при поиске последовательностей.
Ответ №1:
Вы можете написать пользовательскую функцию, которая выполняет итерацию по словарю и создает «подпоследовательности» той же длины, что и последовательность. Затем верните все ключи, в которых найдено совпадение:
def check_sequence(s, d):
keys = list()
for k in d:
sublists = [d[k][i:i len(s)] for i in range(len(d[k])-4)]
if s in sublists:
keys = [k]
return keys
>>> check_sequence([0, 1, 2, 3], mydir)
['p2']
Комментарии:
1. О чем
[0, 12, 34]
?