【发布时间】:2014-12-22 07:45:32
【问题描述】:
我想做这样的事情:
我有一个清单:
pairs = [1,1,1,1,0,0,2,2,2,2,0,3,3,3,3,0,0,0,0,0,4,4,4,4]
我在那里找到了元素:
frags = [[1,1,1,1],[2,2,2,2],[3,3,3,3],[4,4,4,4]]
现在我想合并小于 4 的 0 块:
[[1,1,1,1,0,0,2,2,2,2,3,3,3,3],[4,4,4,4]]
我尝试过这样做:
while j < len(frags)-1: # I added a 'terminator' before, so that len-1
stop_1 = pairs.index(frags[j][-1])
start_1 = pairs.index(frags[j][0])
start_2 = pairs.index(frags[j+1][0])
stop_2 = pairs.index(frags[j+1][-1])
island = float(start_2 - stop_1 - 1)
if island < 4 :
frags[j] = pairs[start_1:stop_2+1]
frags.remove(frags[j+1]) #the same iteration again
else: j+=1
但是如果我删除它们,我会得到无限循环,因为 frag 永远比 len 短。 我该如何解决?
【问题讨论】:
-
预期输出中的
2和3之间不应该有0吗?[1,1,1,1,0,0,2,2,2,2,0,3,3,3,3]?