# LİSTELER

# Elemanları hafızada düzgün bir şekilde tutmamızı sağlayan bir yapıdır.

renkler = ["sarı","beyaz","yeşil","kırmızı","mavi"]

print(type(renkler)) # <class 'list'>

print(renkler) # ['sarı', 'beyaz', 'yeşil', 'kırmızı', 'mavi']

print(len(renkler)) # 5 (listede beş elaman var.

print(renkler[0]) # sarı (listenin 1. eliemanı)

print(renkler[1]) # beyaz

print(renkler[0][0]) #b (1. elemenanın 1. harfi)

print(renkler[1:4]) # ['beyaz', 'yeşil', 'kırmızı'] (1 dahil 4 dahil değil arayı yazar)


#----------------

# append methodu

# insert methodu

# remove methodu

# extent methodu

# pop methodu

# reverse methodu

# short ve sorted methodları


renk = ["Sarı","Yeşil","Mavi","Mor","Kırmızı","Turuncu"]

print(renk) # ['Sarı', 'Yeşil', 'Mavi', 'Mor', 'Kırmızı', 'Turuncu']


# append() ile sona ekleme yapma.

renk.append("Gri")

print(renk) #['Sarı', 'Yeşil', 'Mavi', 'Mor', 'Kırmızı', 'Turuncu', 'Gri']


# insert() ile araya ekleme

renk.insert(0,"Gri")

print(renk)  # ['Gri', 'Sarı', 'Yeşil', 'Mavi', 'Mor', 'Kırmızı', 'Turuncu', 'Gri']


renk.remove("Sarı")

print(renk) # ['Gri', 'Yeşil', 'Mavi', 'Mor', 'Kırmızı', 'Turuncu', 'Gri']


# extent() ile çoklu ekleme

renk2 = ["Al","Ak"]

renk.append(renk2)

print(renk) #['Gri', 'Yeşil', 'Mavi', 'Mor', 'Kırmızı', 'Turuncu', 'Gri', ['Al', 'Ak']]

# Bu şekilde liste eklenir ama listenin içine liste olarak eklenir.

# extent ise listeye elemanları tek tek ekler.

renk = ["Sarı","Yeşil","Mavi","Mor","Kırmızı","Turuncu"]

renk2 = ["Al","Ak"]

renk.extend(renk2)

print(renk) # ['Sarı', 'Yeşil', 'Mavi', 'Mor', 'Kırmızı', 'Turuncu', 'Al', 'Ak']

# Görüldüğü üzere elemanları eleman olarak ekledi.


# pop() ile son elemanı silme ya da döndürme.

renk = ["Sarı","Yeşil","Mavi","Mor","Kırmızı","Turuncu"]

silinen = renk.pop()

print(renk) #['Sarı', 'Yeşil', 'Mavi', 'Mor', 'Kırmızı'] (turuncu silindi)

print(silinen) # Turuncu (turuncu döndürüldü)


# reverse() ile listeyi tersine sıralama.

renk = ["Sarı","Yeşil","Mavi","Mor","Kırmızı","Turuncu"]

renk.reverse()

print(renk) # ['Turuncu', 'Kırmızı', 'Mor', 'Mavi', 'Yeşil', 'Sarı']


# sort() listeyi sıralar. numarik ya da alfabetik olabilir.

renk = ["Sarı","Yeşil","Mavi","Mor","Kırmızı","Turuncu"]

renk.sort()

print(renk) # ['Kırmızı', 'Mavi', 'Mor', 'Sarı', 'Turuncu', 'Yeşil'] (alfabetik)

sayi = [1,3,5,13,2,9,28,0]

sayi.sort(reverse=False)

print(sayi) # [0, 1, 2, 3, 5, 9, 13, 28]

sayi.sort(reverse=True)

print(sayi) # [28, 13, 9, 5, 3, 2, 1, 0]


# sorted() ile yeni liste oluşturmadan sadece sıralama.

sayi = [1,3,5,13,2,9,28,0]

liste2 = sorted(sayi)

print(liste2) #[0, 1, 2, 3, 5, 9, 13, 28]

print(sayi) # [1, 3, 5, 13, 2, 9, 28, 0]


#---------------------------

# min,max ve in kullanımı

# sum ve kullanımı

# for döngüsü ile listeyi yazdırma.

# enumerate

# listeyi stringe çevirme ve join methodu

# string'i listeye çevirme ve split methodu


renkler = ["Sarı","Yeşil","Mavi","Mor","Kırmızı","Turuncu"]

sayilar = [12,5,2,7,3,11,9]


# min() ile en küçük eklemanı döndürme.

print(min(sayilar)) #2

# max() ile en küçük elemanı döndürme.

print(max(sayilar)) #12

# in() ile kontrol etme.

print("Sarı" in renkler) # True

print("Al" in renkler)  # False

# sum() ile listenin toplamını döndürme

print(sum(sayilar)) #49


# for döngüsü ile listeyi yazdırma.

for renk in renkler:

    print(renk)

# Çıktı şu şekilde olacaktır:

    # Sarı

    # Yeşil

    # Mavi

    # Mor

    # Kırmızı

    # Turuncu

# enumerate() ile listeyi numaralandırma.

print(list(enumerate(renkler)))

# Çıktı: [(0, 'Sarı'), (1, 'Yeşil'), (2, 'Mavi'), (3, 'Mor'), (4, 'Kırmızı'), (5, 'Turuncu')]

print(list(enumerate(renkler,start=3)))

# Çıktı: [(3, 'Sarı'), (4, 'Yeşil'), (5, 'Mavi'), (6, 'Mor'), (7, 'Kırmızı'), (8, 'Turuncu')]

# Numaralandırmaya 3 den başlamasını sağladık.


# Listeyi metin dosyasına yani stringe çevirme.


string_renkler = "".join(renkler)

print(string_renkler) # SarıYeşilMaviMorKırmızıTuruncu


string_renkler = ",".join(renkler)

print(string_renkler) # Sarı,Yeşil,Mavi,Mor,Kırmızı,Turuncu


# split() ile stringi bölme.

renkler2 = string_renkler.split(",")

print(renkler2) # ['Sarı', 'Yeşil', 'Mavi', 'Mor', 'Kırmızı', 'Turuncu']