我想在 Python 中實現一個算法,該算法循環遍歷值列表並創建一個包含相同值的起始索引的新列表。例如,對於下面的 L 列表,所需的輸出是 m = [0,0,0,3,3,3,6,6,6,9,9,9]
L = [2,2,2,5,5,5,6,6,6,12,12,12]
i = 0
m = []
for l in L:
if L[i+1] = l:
m.append(i)
else:
m.append(len(m))
print(m)
Output: [0, 0, 0, 3, 4, 5, 6, 7, 8, 9, 10, 11]
我被困在 for 循環上,不知道下一步如何進行。感謝有人能指出正確的方向。謝謝!
我認為有兩個想法可以解決這個問題。
考慮這個答案
first_seen = {}
for i, n in enumerate(L):
if n not in first_seen:
first_seen[n] = i
answer = [first_seen[n] for n in L]
字典是跟踪首次找到每個數字的索引的好方法。枚舉讓您在自動跟踪索引的同時循環數字。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句