Re: [Linux-programlama] python ile sıralama

---------

New Message Reply About this list Date view Thread view Subject view Author view Attachment view

From: Aykut KOÇAK (aykutkocak@superonline.com)
Date: Sat 22 Apr 2006 - 09:23:41 GMT


Merhaba,

Bilgi icin tesekkur ederim. Bu bilgilere ek olarak __cmp__() methodunu
da yeniden yazmak istiyorum. Bu durumda boyle coklu bir karsilastirma
icin __cmp__() methodunu nasil yazmaliyim?

Iyi calismalar...

Yuce Tekol wrote:

>Merhaba,
>
>Oncelikle Foo'yu asagidaki gibi tanimlarsak, sanirim daha dogru olacak:
>
>class Foo:
> def __init__(self, _id, isim):
> self.id = _id
> self.isim = isim
>
>(Tabii ki her Foo'nun farkli id'si ve isim'i olabilmesini istiyorsaniz)
>
>Simdi Foo'lardan olusan bir liste tanimlayalim:
>
>liste = [Foo(10,'abc'), Foo(5,'def'), Foo(2,'acb')]
>
>Nesnelerin istedigimiz alanina gore siralama yapmak icin, liste'nin
>sort() yontemini ve cmp parametresini, bir lambda fonksiyonu ile
>kullanabiliriz. Mesela listeyi 'id' alanina gore siralayalim:
>
>liste.sort(cmp=lambda a, b: cmp(a.id, b.id))
>
>isim alanina gore siralamak icin:
>
>liste.sort(cmp=lambda a, b: cmp(a.isim, b.isim))
>
>list.sort() siralamayi yaparken listeyi degistirir; eger listenin
>degismemesini, yeni sirali yeni bir listenin olusmasini istiyorsaniz,
>sorted fonksiyonunu kullanabilirsiniz (Python 2.4 ve sonrasi icin):
>
>yeni_liste = sorted(liste, cmp=lambda a, b: cmp(a.isim, b.isim))
>
>
>
>On 3/31/06, Aykut KOÇAK <aykutkocak@superonline.com> wrote:
>
>
>>Merhaba,
>>
>>Python'da elimde bulunan bir class dizisini python'un sort komutunu
>>kullanarak farklı özelliklerine göre farklı sıralamak istiyorum. Bu iş
>>için bir yöntem önerebilir misiniz?
>>
>>örnek:
>>
>>class foo:
>> id=1
>> isim='isim1'
>>__cmp__(self):
>> ???
>>
>>
>>id 'ye göre veya isme göre sıralama yapmak istiyorum
>>
>>--
>>Aykut KOÇAK
>>
>> Elektronik Mühendisi
>>(/Electronics Engineer/)
>>
>> E-Posta
>>(/E-Mail/ )
>>
>> aykutkocak@superonline.com
>>
>>_______________________________________________
>>Linux-programlama mailing list
>>Linux-programlama@liste.linux.org.tr
>>http://liste.linux.org.tr/mailman/listinfo/linux-programlama
>>
>>
>>
>>------------------------------------------------------------------------
>>
>>_______________________________________________
>>Linux-programlama mailing list
>>Linux-programlama@liste.linux.org.tr
>>http://liste.linux.org.tr/mailman/listinfo/linux-programlama
>>
>>

-- 
Aykut KOÇAK

Elektronik Mühendisi (/Electronics Engineer/) E-Posta (/E-Mail/ )

aykutkocak@superonline.com

_______________________________________________ Linux-programlama mailing list Linux-programlama@liste.linux.org.tr http://liste.linux.org.tr/mailman/listinfo/linux-programlama


New Message Reply About this list Date view Thread view Subject view Author view Attachment view

---------

Bu arsiv hypermail 2.1.2 tarafindan uretilmistir.