10_Liste_Veri_Tipleri.py
# Her iki yöntemlede list sınıfından bir liste objesi oluşturabiliriz.
a = list()
b = []
print(type(a))
print(type(b))

ogrenciler = ["Hasan","Hüseyin","Ahmet","Mehmet","Veli"] # Listenin 0 ıncı elemanı "Hasan" - ogrenciler[0]
print(len(ogrenciler)) # Liste objesinin uzunluğunu öğrenebiliriz.
print(ogrenciler)

# Ogrenciler listesini teker teker içeriğini listeleyebiliriz.
for ogrenci in ogrenciler:
    print(ogrenci)

# listede bulunmayan bir ismi kaldırmak istediğimizde hata ile karşılaşmamak için kontrolü elden bırakmamalıyız.
if "ahmet".capitalize() in ogrenciler:
    ogrenciler.remove("Ahmet") # Listedeki Ahmet ismi silindi
else:
    print("Böyle bir isim listede mevcut değil")

print(ogrenciler)
print(f"Listeden bir kişi adı silindiğinde listenin uzunluğu {len(ogrenciler)}\n")

okulOgrenciler = ogrenciler[0:3]   # 0 ıncı index ile 3. index arasındaki elemanları okulOgrenciler adlı listeye aktar.
okulOgrenciler = okulOgrenciler[::-1]  # Listeyi tersten almış oldu
print(okulOgrenciler)

okulOgrenciler[2] = "Sedat" # Listedeki 2. index elemanını Sedat olarak değiştirdi.
print(okulOgrenciler)

# UYARI ! : Bir String objesinin içerisindeki bir harfi bu yöntemle değiştirme şansımız yok.
yazi = "Hafize Özal Ortaokulu"
# yazi[0] = "P" İLE BİR ATAMA YAPILMAYA KALKILIRSA. TypeError: 'str' object does not support item assignment HATASI İLE KARŞILAŞIRIZ.
yaziS = list(yazi) # Bu hatayı düzeltmek için . yazi stringini bir liste objesine çevirelim.
yaziS[0] = "R"
print("".join(yaziS))

# İki listeyi Birleştirebiliriz.
ogrenciler2 = ["Ali","Seda","Sayan","Furkan","Demir"]
ogrenciler = ogrenciler + ogrenciler2
print(ogrenciler)

# Listeyi istenilen sayıda uzatabiliriz.
liste = [1,2,3,4]
print(liste * 3)

# Listeye istenilen biçimde veri saklanabilir. Liste elemanlarının hepsi aynı veri türünde olmak zorunda değil.
liste.append("Hafize")
print(liste)

# Listenin herhangi bir elemanını çıkarabiliriz.
cikar = liste.pop() # En sondaki elemanı çıkarabiliriz.
print(liste)
print("Çıkarılan Değer {}".format(cikar))
cikar = liste.pop(0)
print(liste)

#Liste elemanlarını sıralayabiliriz.
ogrenciler.sort(reverse=True) # Büyükten küçüğe göre sıralama için reverse parametresini True yapmanız yeterli.
print(ogrenciler)