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

---------

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

From: Yuce Tekol (yucetekol@gmail.com)
Date: Mon 03 Apr 2006 - 19:44:00 GMT


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


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

---------

Bu arsiv hypermail 2.1.2 tarafindan uretilmistir.