私は、シーケンスを指定して、リスト内でそのシーケンスを見つけようとし、そのシーケンスが終了した直後にリスト項目を返す関数に取り組んでいます。
現在、このコードはシーケンスの終了直後にリスト項目を返しますが、これほど多くのネストされた if ステートメントがあることに満足しておらず、書き直したいのですが、どうすればよいかわかりません。それは私が過去に書いたものとはまったく異なり、少し練習不足に感じます。
def sequence_in_list(seq, lst):
m, n = len(lst), len(seq)
for i in xrange(m):
for j in xrange(n):
if lst[i] == seq[j]:
if lst[i+1] == seq[j+1]:
if lst[i+2] == seq[j+2]:
return lst[i+3]
(私の意図は、この関数を拡張して、そのシーケンスがリスト全体で複数回発生した場合、シーケンスの後に最も頻繁に発生した後続のアイテムを返すようにすることです)