Python itertools ile çalışıyorum ve son öğe tarafından bir çift çift sıralamak için groupby kullanıyorum. Sıralamak için aldım ve gruplar halinde yineleyebilirim, ama her grubun uzunluğunu almak zorunda kalmadan her grubun uzunluğunu elde etmeyi gerçekten çok isterim.Python: Itertools'un uzunluğunu alma _grouper
Proje, bazı veri noktalarını kümelendiriyor. Ben çiftleri ile çalışıyorum (numpy.array, int) numpy dizi veri noktasıdır ve tamsayı küme etiketi
İşte benim alakalı kod nerede: Geçen satırda
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' türünde nesnenin len() olmadığı bir hata alıyorum.
_groupers için kullanılabilir olan işlemlere baktım, ancak bir grubun uzunluğunu sağlayabilecek bir şey bulamadım.
Daha iyi yollar olabilir, ancak yinelenebilir listeyi bir listeye dönüştürebilir ve öğeleri sayabilir ('if (list (clusterList))
RocketDonkey
Teşekkürler, RocketDonkey, bu mükemmel çalışıyor! – user1466679
Hiç sorun yok - aşağıdaki yanıtlar aynı çözümü önerir, bu yüzden 'yanıtı' yapmak için bunlardan birini kabul edebilirsiniz. Her şeyde iyi şanslar! – RocketDonkey