Pythonda en çok kullanılan veri tiplerindendir. Sıralı ve indexli yapıları vardır.Listeler adından da anlaşıldığı gibi tanımlanan bir yapıda birden fazla veri tutma işlemidir.
Python Listeler Nasıl Kullanılır?
Mesela öğrencileri kaydetmeniz gereken bir program yazıyorsunuz diyelim. Her öğrenci için ögrenci1 = "ali" , öğrenci2 = "veli" ... gibi değişkenler tanımlamak doğru değildir. Kodda kullanım açısından sizi yorar.
Onun yerine öğrenciler diye bir liste oluşturup bütün öğrencileri içerisinde tutarız. Liste mantığı bu şekildedir. Bir listenin içinde başka listelerde tanımlayabilirsiniz.

liste = [] #Boş bir liste tanımıdır.
liste_sayilar = [1, 2, 3,] #integer listesi
liste_karma = [1 ,"su", 12.5] #Karma liste
ogrenciler = ["Ali", "Veli", "Ahmet"] #String listes
Listeler de her eleman için bir index değeri vardır. Mesela yukarıdaki ogrenciler listesinin ele alalım. Liste indexleri her zaman 0(sıfır) dan başlar. 0. index = Ali, 1.index = Veli, 2.index = Ahmet şeklindedir.Yani biz bu listedeki değerlere ulaşmak için bu indexleri kullanabiliriz.
ogrenciler = ["Ali", "Veli", "Ahmet"]
print(ogrenciler[0]) #çıktı-->Ali
print(ogrenciler[1]) #çıktı-->Veli
print(ogrenciler[2]) #çıktı-->Ahmet
ogrenciler.append("Su") #append() listeye eleman ekler. Sondan ekler elemanları.
ogrenciler.remove("Veli") #remove() listeden eleman siler
print(ogrenciler)
print(ogrenciler[5]) #Bu kllanım hatalıdır. Liste boyutunu aşdığı için İndexError:list index out of range hatası alırsınız.
ogrenciler[0] = "Zeynep" #Bu işlemi yapıp çalıştırısam da normalde 0. index = Ali iken artık 0.index = Zeynep olur. Yani değerdeğişikliği yapabilirsiniz.ogrenciler[4] = "Derin" # Bu da hatalıdır. IndexError: list assignment index out of range hatası alırsınız. Liste boyutu böyle arrtırılmaz.
Bir başka liste tanımlama şeklide list constructor dır. Aynı yapıları kullanabilirsiniz yine. Hatta string metotları yazımızda geçen metotlarıda kullanabilirsiniz mesela len() metodu.
sehirler = list(("Adana", "İstanbul"))
sehirler.append("Ankara")
print(sehirler)
print(len(sehirler)) #liste uzunluğunu verir
Diğer Liste Metotları
sehirler = ["Samsun","Ankara","İstanbul","Sakarya"]
print(sehirler.count("Ankara")) #listede kaç tane Ankara olduğunu verir.
print(sehirler.index("İstanbul")) #listedeki İstanbul elemanının indexini verir. Birden fazla aynı elemandan varsa ilk bulduğu elemanın indexini verir bitirir.sehirler.pop(1) # pop da silme işlemi yapar remove dan farkı index e göre siler listeden.
sehirler.insert(0, "İzmir") #0.index e İzmir i ekleme işlemi yapar.
sehirler.reverse() #Listeyi tersine çevirir.
sehirler3 = sehirler.copy() #listeyi sehirler3 e kopyalar
sehirler.extend(sehirler3) #İki listeyi sehirler listesinde birleştirir.
sehirler.sort() #listedeki verileri a-z veya 1,2,3.. sıralama işlemi yapar. print(sehirle.clear()) #listeyi temizler
Önemli Not:Listeler referans tiplidir. Yani bellekte bir yer işaret ederler. Aşağıdaki kodu çalıştırdığınızda hem meyveler hemde meyveler2 listesinin ilk elemanın muz olarak değiştiğini görürsünüz.
Bunun sebebi meyveler2 yi meyveler e eşitlediğimizde bellekte ikiside aynı yeri işaret eder o yüzdende meyveler2 de yaptığımız değişiklik meyveler e de yansır. Yukardaki copy() işlemi bundan bağımsızdır, onda birinde yapılan değişiklik diğerini etkilemez.
meyveler = ["elma" , "armut", "portakal"]
meyveler2 = meyveler
meyveler2[0] = "muz"
print(meyveler)
print(meyveler2)