Listelerin ve dizgelerin indisleme ve dilimleme gibi pek cok ortak ozellikleri olduğunu grduk. Bunlar sıra şeklindeki iki veri turudurler. Python gelişmekte olan bir dil; diğer sıra şeklindeki veri turleri de Python'a eklenebilir. Demet de başka bir sıra şekilli standart veri turudur. Bir demet virgul ile ayrılmış bir kac değerden oluşur. >>> t = 12345, 54321, 'merhaba!' >>> t[0] 12345 >>> t (12345, 54321, 'merhaba!') >>> # demetler ic ice kullanılabilirler : ... u = t, (1, 2, 3, 4, 5) >>> u ((12345, 54321, 'merhaba!'), (1, 2, 3, 4, 5)) Gorduğunuz gibi cıktıda demetler daima parantez icinde gorunurler; ki ic ice gecmiş demetler belli olsun. Demetler parantezli veya parantezsiz olarak yazılabilirler; ancak parantezler genelikle gereklidirler (ozellikle de demet daha buyuk bir ifadenin icinde geciyorsa). Demetlerin pekcok kullanım alanı var: (x, y) koordinat cifti, veri tabanındaki işci kayıtları vb. gibi. Demetler de dizgeler gibi değerleri değiştirilemez veri turleridir; bunların elemanlarına atama yapılamaz (fakat dilimleme ve birleştirme aracılığı ile bu etki sağlanabilir). Ayrıca değiştirilebilen elemanlardan oluşan demetler oluşturmak da mumkundur (ornek: listelerden oluşan bir demet). Sıfır veya bir elemanlı demetlerin oluşturulması ile ilgili ozel bir problem var: bunların ifade edilmesini sağlayan sozdizim biraz acayip. Boş demetler bir cift boş parantez ile ifade edilir. Tek elemanı olan bir demet icin ise elemandan sonra bir virgul kullanılır (tek bir değeri parantez icine almak yeterli değildir). Cirkin ama etkili. Ornek: >>> bos = () >>> tekOge = 'merhaba', # >> len(bos) 0 >>> len(tekOge) 1 >>> tekOge ('merhaba',) t = 12345, 54321, 'merhaba!' ifadesi demetleme (tuple packing) işlemine bir ornektir: 12345, 54321 ve 'merhaba!' değerleri bir demet icinde toplanmışlardır. Bu işlemin tersi de mumkun: >>> x, y, z = t Doğal olarak, buna demet acma (sequence unpacking) deniyor. Demet acma sol taraftaki değişken sayısının sıra icindeki oğe sayısına eşit olmasını gerektirir. Coklu değer atama işleminin aslında demetleme ve demet acmanın bir bileşimi olduğuna dikkat edin. Burada kucuk bir asimetri var: birden fazla değeri demetleme her zaman bir demet oluşturur ve demet acma herhangi bir sıra icin yapılabilir. Ornek: >>> paket = 'xyz' # bir dizge >>> a,b,c = paket >>> a 'x' >>> b 'y' >>> c 'z'
__________________
Python - Demetler (tuples)
Programlama0 Mesaj
●44 Görüntüleme
- ReadBull.net
- Programlama ve Yazılım
- Programlama
- Python - Demetler (tuples)