【发布时间】:2017-01-13 09:36:07
【问题描述】:
我有一个列表如下,只包含 (-1)s 和 1s:
list1=[-1,-1,1,1,1,-1,1]
我正在尝试将连续重复的数量附加到列表中,例如:
count_dups=[2,3,1,1]
我尝试创建一个新列表并使用 zip 函数作为第一步,但是 由于截止终值,似乎无法继续
list2=list1[1:]
empty=[]
for x,y in zip(list1,list2):
if x==y:
empty.append(x)
else:
empty.append(0)
【问题讨论】:
-
你为什么在这里使用
zip?它似乎与任务无关。 -
我认为你应该改用
itertools.groupby。 -
见this question。它有一个传统的实现和一个使用 groupby 的实现。您应该能够调整它们以满足您的要求。
标签: python python-3.x