これを行う簡単な方法があるはずですが、頭を包むことができないようです。私は次のようなリストを持っています、
l = [3,3,3,4,4,4,4,2,2,2,2,3,3,3,3,3,3,3,3,3,2,2,5,5,5,5,5,3,3,3,3,3,3]
これは、整数で指定された回数だけ繰り返す整数のリストです。たとえば、リスト内の整数が 5 の場合、5 回繰り返します。リストの構造を保持し、次のように変換したいと思います。
l = [3,-1,-1,4,-1,-1,-1,2,-1,2,-1,3,-1,-1,3,-1,-1,3,-1,-1,2,-1,2,-1,5,-1,-1,-1,-1,3,-1,-1,3,-1,-1]
繰り返される整数を -1 に置き換えます。最初の整数 N を保持し、その後ろの繰り返し整数を N-1 -1 に置き換えたいと思います。私の問題は、同じ整数が隣り合っている場合です。その場合、私は得ています、
l = [3,-1,-1,4,-1,-1,-1,2,-1,-1,-1,3,-1,-1,-1,-1,-1,-1,-1,-1,2,-1,-1,-1,5,-1,-1,-1,-1,3,-1,-1,-1,-1,-1]
誰でもこれを解決する方法を考えることができますか?
これまでのところ、コードはありますが、
def idx(List):
xList = []
xList.append(List[0])
for i in range(0, len(List)):
if (i+1) in range(len(List)):
if List[i] == List[i+1]:
xList.append(-1)
elif tscList[i] != List[i+1]:
xList.append(List[i+1])
else:
break
return xList
整数の繰り返しは考慮されません。ループ内の整数の位置をリセットするか、カウントし続けることなくカウントする簡単な方法が本当にわかりません。
これについて助けてくれてありがとう。