例如。我有以下列表:
N=[1, 2, 2, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 5, 1]
我需要将其细分如下:
N2=[[1], [2, 2], [3, 3, 3], [4, 4, 4, 4], [5, 5, 5, 5, 5], [1]]
最后的' 1'保持原来的位置没有与其他' 1组合。谢谢你的帮助
答案 0 :(得分:1)
使用 itertools.groupby
x = [list(i) for _, i in itertools.groupby(N)]
# Result
[[1], [2, 2], [3, 3, 3], [4, 4, 4, 4], [5, 5, 5, 5, 5], [1]]
答案 1 :(得分:0)
您可以通过遍历列表手动对它们进行分组,记住最后一个元素并在当前元素与最后一个元素不同时开始新列表:
N = [1, 2, 2, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 5, 1]
last = object()
data = []
for i in N:
if i != last:
data.append([])
data[-1].append(i)
last = i
print(data) # [[1], [2, 2], [3, 3, 3], [4, 4, 4, 4], [5, 5, 5, 5, 5], [1]]