列挙、zip、インデックスなど、Python で事前定義されたリスト関数を使用せずに、リスト内の実行を見つけようとしています。
実行とは、リスト [1,2,3,6,4] が与えられた場合、新しいリスト [1,2,3] を返し、実行の開始位置と終了位置、および長さを返すことを意味します。実行します。
以下はこれに対する私の試みですが、取得できないようです。インデックスが範囲外のエラーになるという問題が常に発生しているようです。
def run_cards (hand_shuffle, hand_sample):
true_length = len(hand_shuffle) - 1
y = 0
r = []
for x in range(len(hand_shuffle)):
y = x + 1
if y <= true_length: #Checks if y is in range with x
t = hand_shuffle[y] - hand_shuffle[x] #Subtracts the two numbers to see if they run
r.append(t)
lent = len(hand_shuffle)
if hand_shuffle[lent-1] - hand_shuffle[lent-2] == 1:
r.append(1)
h = []
for i in range(len(r)):
if r[i] == 1: #If t from above for loop is equal to 1 append it to the new list
h.append(i)
h.append(i+1)
p = []
for j in h:
p.append(hand_shuffle[j])
print (p)
return hand_shuffle, hand_sample
現在、私のコードは実行されますが、探しているものが得られません。