必须有一种简单的方法来做到这一点,但似乎无法理解它。我有一个类似的清单,
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
它不考虑重复整数。如果没有重置或继续计数,我真的看不到一种简单的方法来计算循环中整数的位置。
感谢您对此的任何帮助。