1
これは私の初めてのstackoverflowでの質問です。私はウェブ上でかなりの検索を行ったが、私が欲しいものは見つけられなかった。私の質問は、Pythonを使用してリスト内で連続する繰り返し数(または一般的な要素)の最大長を見つける方法です。私はうまく機能する次の関数を書いたが、これを行うか、コードを改善する良い方法があるのだろうかと思っていた。どうもありがとう!最大長さIは、以下の意味によってリスト(Python)で連続する繰り返し番号の最大長を見つける
def longest(roll):
'''Return the maximum length of consecutive repeated elements in a list.'''
i = 0
M = 0 # The maximum length
while 0 <= i < len(roll):
c = 1 # Temporarily record the length of consecutive elements
for j in range(i+1, len(roll)):
if roll[j] != roll[i]:
i = j
break
c += 1
i += 1
if c > M:
M = c
if i == len(roll) - 1:
break
return M
:
[1、1、2、2、2、4]、M = 3(2を3回繰り返しました)。
[1,2,1,2,1]、M = 1(1と2は1回だけ繰り返される)。
ありがとうございます!非常に良いコード。また、(itertoolsのようなツールを使用せずに)プレーンなPythonコードを使ってこれを行う方法があるのだろうかと思っていました。それは非常に単純な質問のようですが、私は簡単な方法を見つけることができませんでした。元のコードを改善することは可能ですか?ありがとう! –
ちょっと戻ってきます。私の頭の上から離れて、あなたのコードのロジックは健全ですが、他の改善はささいなことではありません。しかし、私はそれに亀裂を持ってみましょう。 :) – Manhattan