Pythonda dizelerin (string ifadelerinin) dizi şeklinde bir liste oluşturulduktan sonra dizedeki her elemanın indeks numarasını girerek karakteri veya karakter gruplarını yazdırabiliriz. Liste string(dize) elemanlarının listede kaçıncı sırada olduğunu göstermek için indeks numarasını köşeli parantezler [ ] arasına elamanın endeks numarası yazılarak sonuç yazdırılabilir.

Bir dizede ilk elemanın indeks numarası [0] dır. İndeks numarası 0 dan başlar. Örneğin 6 elemanlı bir listenin en son indeks numarası 5 tir. Yani 1 eksik. Bunun sebebi indeks numarasının [0] ile başlamasıdır.

Örnek liste oluşturalım;

renk = ['k', 'ı', 'r', 'm', 'ı', 'z', 'ı']          #liste oluşturalım.

renk[0] ='k'
renk[1] ='ı'
renk[2] ='r'
renk[3] ='m'
renk[4] ='ı'
renk[5] ='z'
renk[6] ='ı'

Listede renk[0] değerinin 'k' olduğu görülmektedir. Enson elemanın indeksi ise yani renk[6] indeksinin değeri 'ı' karakteridir. "kırmızı" dizesinin eleman sayısı listede 7'dir. Tabii tüm elemanların string olduğunu unutmayın.

Kod şeklinde yazalım;

>>> renk="kırmızı"  
>>> list(renk)
['k', 'ı', 'r', 'm', 'ı', 'z', 'ı']
>>> renk[0]
'k'
>>> renk[1]
'ı'
>>> renk[2]
'r'
>>> renk[3]
'm'
>>> renk[4]
'ı'
>>> renk[5]
'z'
>>> renk[6]
'ı'

renk değişkeni içinde dizi elemanlarının indeks numaralarını yazarak hepsini yazdırmış olduk.

Tabiiki dizelerin hepsini karakter şeklinde oluşturmuş olduk. Pekii kelimelerden ve sayılardan bir dizi oluşturupta indeks numaraları ile de yazdırabilir miyiz? Tabii ki yazdırılabilir.

Tekrar bir dizi oluşturalım;

>>> liste1=["kalem",8,"c","N",6.5]              #karışık veri tiplerinden dizi oluşturduk. string olan elemanları tırnak içine aldığımızı dikkat edelim.
>>> print(liste1)                                         #print() fonksiyonu ile listemizi yazdıralım
['kalem', 8, 'c', 'N', 6.5]                               #dizi şeklinde listemizi yazdırdık.


>>> liste1[0]
'kalem'                                          # Veri tipi : String
>>> liste1[1]
8                                                   # Veri tipi : int
>>> liste1[2]
'c'                                                  # Veri Tipi : String - Char
>>> liste1[3]
'N'                                                 # Veri Tipi : String - Char
>>> liste1[4]
6.5                                                # Veri Tipi : Float
>>> liste1[5]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: list index out of range


Yukarıdaki tüm dizi elemanlarını indekslerini belirterek yazdırdık. Ancak liste1[5] indeksinde eleman bulamadık. Zaten python derleyicisi de hata verdi. Hata kodunda ise python derleyicisinin index aralığı dışında olduğunu belirttiğini hata kodunda görebilirisiniz. -IndexError: list index out of range-



Dizi icindeki herhangi bir elemanın veri tipini pythonda kod yazarak ta görebiliriz.

>>> type(liste1[4])                        #liste1 deki elemanlardan 4. indekste bulunan elemanın veri tipini yazdırarak float olduğunu görmüş olduk.
<class 'float'>                                 # Veri Tipi : Float

liste1 deki diğer elemanları da yukarıdaki gibi python derleyicisinde yazarak veri tiplerini görebilirsiniz.


len() Fonksiyonu

Bir dizide elemanların sayısını bulmak için len() fonsiyonunu kullanıyoruz. Daha sonraki konularda len() fonkisyonu hakkında ayrıntılı anlatım yapacağız.

renkler=["mavi","sarı","kırmızı","turuncu","yeşil","siyah","beyaz"]       şeklinde dizi oluşturalım. Dizideki eleman sayısını bulmak için len() fonsiyonunu kullanarak yazalım.

     
renkler=["mavi","sarı","kırmızı","turuncu","yeşil","siyah","beyaz"]   
>>> len(renkler)
7


len() fonkisyonu içerisine tanımladığımız dizinin adını yazdığımızda dizideki eleman sayısı verir.

Dizide belirli elemanları yazdırmak istersek köşeli parantez içine  iki nokta üstüste [::] ve sayılarla parametre belirleyerek belirleyebiliriz. Şimdi bir dizinin parametrelerini yazalım.

dizi =[Başlangıç parametresi   Bitiş Parametresi   Adım Parametresi]
dizi içinde indeks numarasını belirlediğimiz alana başlangıç parametresi olarak : iki nokta yazarsak en baştan dizi elemanlarını en baştan sıralar.
dizi içinde indeks numarasını belirlediğimiz alana bitiş parametresi olarak : iki nokta yazarsak en sona kadar dizi elemanlarını sıralar.
dizi içinde indeks numarasını belirlediğimiz elemanlar arasında ritmik olarak bir atlayarak iki atlayarak.... gibi  sayısal ifade girerek belirlenir.
Örneklerle daha anlaşılacaktır.

Tekrar yukarıdaki renkler dizisini ele alalım.

renkler=["mavi","sarı","kırmızı","turuncu","yeşil","siyah","beyaz"]      #dizimiz 7 elemanlı ve ilk elemanın indeks numarasının [0] olduğunu unutmyalım

>>> renkler[::]                                               # renkler dizisinde [::] elemanlar baştan sona kadar listelenir
['mavi', 'sarı', 'kırmızı', 'turuncu', 'yeşil', 'siyah', 'beyaz']        #tüm elemanlar listelendi.

>>> renkler[:2]                                             # en baştan başla 2. indekste bulunan elemana kadar listele
['mavi', 'sarı']                                                # en baştan başladığı için [0]. indeks ve [1]. indeks listelenir.

>>> renkler[3:]                                  # [3] indeksteki elemandan başla sona kadar listele. [3] indeks yani turuncu dahil
['turuncu', 'yeşil', 'siyah', 'beyaz']       # listelenen indeksler [3] , [4], [5], [6] şeklindedir.
 
>>> renkler[::2]                                 # baştan başla sona kadar 1 atlayarak listele (yani ikişilerli grubun ilk elemanlarını listele
['mavi', 'kırmızı', 'yeşil', 'beyaz']          # dizi elemanlarını baştan başlayarak 1 atlayarak yazdırdık.


Ayrıca dizilerde ensondan başa doğru da sıralayabiliriz. Renkler dizisindeki en son dize elemanını renkler[6] şeklinde yazdırabileceğimiz gibi renkler[-1] şeklinde de yazdırabiliriz.

>>> renkler[6]
'beyaz'
>>> renkler[-1]
'beyaz'
>>>

örnekte görüldüğü gibi...
peki en son eleman neden -1 olması gerekmektedir bu konuya değinelim.

len() fonsiyonu ile dizideki eleman sayılarını yazdırabiliyorduk. Hemen python terminalinde kod yazarak dizi eleman sayısı yazalım ve sonucu yazdıralım.

>>> len(renkler)
7                              #renkler dizisindeki eleman sayısı 7 dir.

 gördüğünüz gibi renkler dizisindeki eleman sayısı 7 dir. Ancak dizi elmanlarının indeksleri [0] dan başladığı için en elemanın indeks numarası ise [6] dır. Yani eleman sayısının 1 eksiğidir.
Hemen kod yazarak belirtelim.

>>>renkler[len(renkler)-1]      #Görüldüğü gibi renkler dizisndeki eleman sayısından 1 çıkarttık ve indeks numarasını bulduk
'beyaz'                                    #python çıkan sonucu renkler[6] olarak belirledi ve [6]. indeksteki elemanı yazdırdı.

ancak pythonda indeks olarak renkler[-1] olarak yazdığımızda varsayılan olarak len() fonksiyonu uygulanır ve ayrıca yazmaya gerek yoktur.

Aynı şekilde renkler[-2] yazarsak python bize dizideki sondan bir önceki dizi elemanını verecektir. Aşağıdaki gibi ;

>>> renkler[-2]
'siyah'


Başka bir örnek ;

>>> renkler[::-1]                      #renkler dizisindeki elemanları baştan sona geriye doğru sıralar. (-1 den dolayı)
['beyaz', 'siyah', 'yeşil', 'turuncu', 'kırmızı', 'sarı', 'mavi']


Adım parametresi pozitif olursa ileriye doğru sıralar, negatif olursa geriye doğru sıralar. Geriye doğru 1 atlayarak sıralayalım.

>>> renkler[::-2]                             #dizideki en son elemandan başladı geriye doğru 1 atlayarak sıraladı.
['beyaz', 'yeşil', 'kırmızı', 'mavi']    


Siz de örnekleri python terminalinde yazarak alıştırma yapabilirsiniz.

Dizilerin sadece stringlerden/dizelerden oluşmadığını farklı veri tiplerinden dizilerin oluşturulabildiğini daha önce ifade etmiştik.

sayilar=[1,2,3,4,5,6,7,8]        

sayılardan oluşan bizi  oluşturduk. Bu dizinde ilk indekste bulunan elemanı bulmak için sayilar[0] şeklinde kod yazılması gerektiğini biliyoruz. Çünkü dizileri ilk elemanı 0. indekstir.

>>> sayilar=[1,2,3,4,5,6,7,8]
>>> sayilar[0]
1
>>> sayilar[-1]
8
>>> sayilar[7]
8

sayilar dizininde indeksleri verilen dizinin elemanları bulduk. Şimdi de geriye doğru sıralayalım.

>>> sayilar[::-1]
[8, 7, 6, 5, 4, 3, 2, 1]


şimdi de belirtilen bir aralığı sıralayalım:

>>> sayilar[:4]        #baştan başla 4. indekse kadar listele
[1, 2, 3, 4]               #listenin sonucu



Oluşturulan dizilerdeki elemanları kullanarak matematik işlemleri yapılabilir.

Yeni bir dizi oluşturalım :


>>> liste2=[4,8,"python","k",122,400]         # 6 elemanlı bir dizi oluşturduk.
>>> liste2[0]+liste2[5]                                 # 0. indeksteki eleman ile 5. indeksteki değerleri topladık.
404                                                             # Sonucu yazdırmış olduk.


liste2 dizisini kullanarak başka bir kod yazalım;


>>> liste2=[4,8,"python","k",122,400]  
>>> liste2[2]+liste2[5]                         # 2. indeksteki değer string, 5. indeksteki değer int olduğu için hata mesajı aldık.
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: must be str, not int

Dolayısıyla indeks sonucuna karşılık gelen elemanlardan birinin tipi string ile diğeri int bir değer olursa toplanamaz.

Başka bir örnek:
Yine liste2 yi kullanalım.


>>> liste2=[4,8,"python","k",122,400]           
>>> liste2[1]+len(liste2)             #liste2 de 1. indekste bulunan 8 sayısı ile listenin eleman sayısını topladık. (8+6=14)
14


Başka bir örnek ;
İki farklı listenin elemanlarını birleştirerek yeni bir dizi oluşturalım.


>>> liste1=["h", "kütahya",8]           #üç elemanlı 1. listemiz
>>> liste2=[4,7,"kenan"]             #üç elemanlı 2. listemiz
>>> liste1+liste2                     #oluşturduğumuz dizi değişkenleri topladık.
['h', 'kütahya', 8, 4, 7, 'kenan']           # 6 elemanlı yeni bir dizi yazdırdık. İstersek oluşan yeni diziyi başka biz diziye atayabilirdik.

Comments powered by CComment