【发布时间】:2018-02-03 11:13:20
【问题描述】:
我正在尝试在 Python 中构建 2 个不同的函数。
剥离连续值:期望的结果:
exampleArrray = [0,0,0,0,1,1,1,1,1,1,2,2,2,1,1,2,1,2,1,1,2,2,2,2,2,2,1,1,1,1,0,0]
strippedArray = [0,1,2,1,2,1,2,1,2,1,0]
到目前为止我所尝试的:
def stripArray(array):
lengthArray = len(array)
for i in range (1,lengthArray):
print(i)
print(lengthArray)
if (i<lengthArray):
if(array[i-1] == array[i]):
print("has been delted " + str(array[i]))
del(array[i])
i = i -1
lengthArray = lengthArray -1
print(array)
stripArray([0,0,0,0,1,1,1,1,1,1,2,2,2,1,1,2,1,2,1,1,2,2,2,2,2,2,1,1,1,1,0,0])
输出:[0, 0, 1, 1, 1, 2, 2, 1, 2, 1, 2, 1, 2, 2, 2, 1, 1, 0],我可以再次循环,但我认为有更好的方法吗?
计算连续值并加入
伪: 4x0、6x1、3x2、2x1、1x2、1x1、1x2、2x1、6x2、4x1、2x0
exampleArrray = [0,0,0,0,1,1,1,1,1,1,2,2,2,1,1,2,1,2,1,1,2,2,2,2,2,2,1,1,1,1,0,0]
countArray = [40,61,32,21,12,11,12,21,62,41,20]
我想我需要 stripArray 吗?
编辑:
countArray[0] = OccurencesAfterAnother*10 + stripArray[0]
已解决:我们有 3 个完美的功能答案!谢谢你们!你的答案再不一样了,我真的很喜欢他们!
编辑: 感谢大家为接受的答案做出贡献!还有未来的观众,对此有不同的解决方案,并非所有人都需要导入,而其他人则使用 numpy 方法。感谢所有贡献者!
【问题讨论】: