Edw*_*ard 1 python arrays list arraylist python-3.x
假设我们有一个排序数组,
A = [1,2,2,3,7,7,7,9]
Run Code Online (Sandbox Code Playgroud)
我们希望输出如下所示:
[1]
[2,2]
[3]
[7,7,7]
[9]
Run Code Online (Sandbox Code Playgroud)
这是我的尝试:
def func(A):
j = 0
for i in range(len(A)):
result = []
while A[i] == A[j] and j < len(A)-1:
result.append(A[j])
j += 1
if result != []:
print(result)
Run Code Online (Sandbox Code Playgroud)
该函数不包括列表中的最后一个元素,并且运行时间为 O(N^2),我正在尝试改进。任何帮助将不胜感激。
itertools.groupby是将相似元素分组到列表中的一种非常方便的方法:
>>> A = [1,2,2,3,7,7,7,9]
>>> from itertools import groupby
>>> for group in groupby(A):
... print(list(group[1]))
...
[1]
[2, 2]
[3]
[7, 7, 7]
[9]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1021 次 |
| 最近记录: |