나는 itertools와 함께 일하고 있으며 groupby를 사용하여 마지막 요소로 묶음을 정렬합니다. 나는 그것을 분류하고 그룹을 순조롭게 반복 할 수는 있지만, 카운터를 증가시키면서 각 그룹을 반복하지 않고도 각 그룹의 길이를 얻을 수 있기를 정말로 원합니다.Python : itertools의 길이를 얻는 방법 _grouper
프로젝트는 일부 데이터 요소를 클러스터링합니다. 나는 쌍 함께 일하고 있어요 (numpy.array, INT)을 NumPy와 배열은 데이터 포인트이며, 정수 클러스터 라벨
여기 내 관련 코드입니다입니다 : 마지막 줄에
data = sorted(data, key=lambda (point, cluster):cluster)
for cluster,clusterList in itertools.groupby(data, key=lambda (point, cluster):cluster):
if len(clusterList) < minLen:
는, 'len (clusterList) < minLen :', 'itertools._grouper'유형의 객체에 len()이 없다는 오류가 발생합니다.
_groupers에서 사용할 수있는 작업을 찾았지만 그룹 길이를 제공하는 것으로 보이는 항목을 찾을 수 없습니다.
더 좋은 방법이있을 수 있지만 iterable을 목록으로 변환하고 요소를 계산할 수 있습니다 ('if len (list (clusterList))
RocketDonkey
고마워요, RocketDonkey, 완벽하게 작동합니다! – user1466679
전혀 문제가 없습니다 - 아래의 답변은 동일한 수정을 제안하므로 사용자는 그 중 하나를 '대답'으로 받아 들일 수 있습니다. 모든 것에 행운을 빈다. – RocketDonkey