Odak modu
ogrenci_1 = 78
ogrenci_2 = 80
ogrenci_3 = 43
ogrenci_4 = 65
ogrenci_5 = 90
list
veri tipi de tam burada devreye giriyor. Birden çok veriyi gruplayıp bir arada tutmak istediğimizde kullanabileceğimiz bir yapıdır.list
ler belirtirken köşeli parantezle belirtiyoruz: [element1, element2,...]
.list
ler içsel yapı içerdikleri için non-scalar
veri tipidir.notlar = [78, 80, 43, 65, 90]
# bunun aynısını şu şekilde de tutabilirdik:
notlar = [ogrenci_1, ogrenci_2, ogrenci_3, ogrenci_4, ogrenci_5]
notlar
listesinin ilk elemanına ulaşmak için:# ogrenci_1 in notu
notlar[0]
list
'lerin içine istediğimiz veri tipini koyabiliriz. listeleri sadece verilerimi içine koyduğumuz bir kutu olarak düşünün, listlerin tek yaptığı şey bunları bir arada tutmak. Elemanları istediğim veri objesi olabilir. int, float, string, hatta listler bile!["a","b"]
[True, False]
[[1,2], [3,4,5]]
l = [1, 2, "a", "b", True, 4.5, [1,2,3]]
l
notlar
notlar[0]
notlar[-1]
notlar[10]
notlar[-1]
notlar[1:]
notlar[1:3]
notlar[:200]
notlar[:3000]
mutable
veri tipleridir. Elemanlarını güncelleyebiliriz.notlar
notlar[1] += 5 # notlar[1] = notlar[1] + 5
notlar
l = [1, 2, 3, 4]
l[0:3]
l[0:3] = 30, 40, 60
l
l[0:3] = 30, 40
l
l = [1, 2, 3, 4]
l[0:3] = 30
iterable
olması gerekir. Bunun ayrıntısını ileride göreceğiz şimdilik sol tarafı list olarak verebileceğimizi bilmeniz yeterli.l[0:3] = [30]
l
l
len(l)
l = [1,2,3]
l.append(200)
l
l = [1,2,3]
l.extend([100,200,300])
l
l = [1, 2, 3, 4, 5]
l[0] = 100
l
l = [1, 2, 3, 4, 5]
l.insert(0, 100) # is not l[0] = 100
1
değerini sağa kaydırıyor, listeden silmemiş oluyor.l
l.insert(3,44)
l
l = [1,2,3,4]
l.remove(40)
Bunu try-except ile çözebiliriz ama daha o konuyu görmedik. Yine de aşağıya kodu ekliyorum.
try:
l.remove(40)
except ValueError:
pass
l = [1,2,3,40,30,40]
l.remove(40)
l
l = [1,2,3,4,5,6]
# It deletes and return the value, remove() just removes it
l.pop(1)
l
l = [1,2,3,4,5,6]
l.pop(1) + 4
l
# out of range error
l.pop(100)
count()
'un içine yazdığımız değerin listede kaç defa göründüğünü döndürür.l = [1, 2, 44, 4, 5, 1]
l.count(1)
l.count(44)
l.count(1000)
a
adında bir kutucuk oluşturuluyor demiştik.a = 2
a
direkt o kutunun adı oluyor.l
kutunun adı değil, kutuyu işaret eden etiketin adı oluyor.l = [1,2,3]
a = 2
b = a
b
a = a + 1
a
b
a
yı güncellesek de b
güncellenmiyor. b
sadece a
kutusunun değerine eşit olmuş oldu, kutunun kendisine değil.l = [1,2,3]
l2 = l
l
l2
l[0] = 200
l
l2
l2 = l
dediğimizde l2, l etiketinin değerine eşit oldu, iki etikette aynı kutuyu, veri objesini gösteriyor, o yüzden listeyi güncellemem ikisine de yansıyor.copy()
ile yapacağız.l2 = l.copy()
l
l2
l[0] = 300
l
l2
+
operatörü listlerde concatenation yapar.l = [1,2,3]
l2 = [4,5,6]
l
l2
l + l2
l
l2
l3 = l + l2
l3
l = [1, 2, 3, 4, 3, 5, 6]
l
# İlk hangi indexte görünüyorsa onun değerini döndürür.
l.index(3)
l.index(4)
# listede olmayan değerler için error verir.
l.index(100)
l = [1,2,3,4]
l.reverse() # inplace: yani l'yi günceller.
l
l = [1,2,3,4]
l[::-1]
l
l3 = l[::-1]
l3
l
l = l[::-1]
l
l = ["b","a","c"]
sorted(l)
['a', 'b', 'c']
l
['b', 'a', 'c']
l3 = sorted(l)
l3
['a', 'b', 'c']
.sort()
güncellerl = ["b","a","c"]
l.sort() # inplace
l
['a', 'b', 'c']
l = [1,2,10,3,-1]
sorted(l)
[-1, 1, 2, 3, 10]
l
[1, 2, 10, 3, -1]
# küçükten büyüğe sıralar l.sort()
l
[-1, 1, 2, 3, 10]
l = ["b","a","c","1","3","4"]
l.sort()
l
['1', '3', '4', 'a', 'b', 'c']
l = [1,3.1,2,0.6]
l.sort()
l
[0.6, 1, 2, 3.1]
l = ["b","a","c",1,2]
l.sort()
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-152-fb07ac7c73ab> in <module>
----> 1 l.sort()
TypeError: '<' not supported between instances of 'int' and 'str'
l = ["b","a","c","1","3.5","4","5.6", "0.6"]
l.sort()
l
['0.6', '1', '3.5', '4', '5.6', 'a', 'b', 'c']
l = [[1,-20,3], [2,-200,-3]]
l.sort()
l
[[1, -20, 3], [2, -200, -3]]
l = [[10,-20,-3], [2,-2,3]]
l.sort()
l
[[2, -2, 3], [10, -20, -3]]
l = [[10,-20,-3], [10,-25,3]]
l.sort()
l
[[10, -25, 3], [10, -20, -3]]
l = [["a", "b", "c"], [2,-200,-3]]
l.sort()
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-169-fb07ac7c73ab> in <module>
----> 1 l.sort()
TypeError: '<' not supported between instances of 'int' and 'str'
l
[['a', 'b', 'c'], [2, -200, -3]]
l = [[200, "b", "c"], [2,-200,-3,10]]
l.sort()
l
[[2, -200, -3, 10], [200, 'b', 'c']]
l = [[200, "b", "c"], [200,-200,-3,10]]
l.sort()
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-175-fb07ac7c73ab> in <module>
----> 1 l.sort()
TypeError: '<' not supported between instances of 'int' and 'str'
Sıfırdan yazılıma hızlı bir başlangıç için özel programlarımız
Yazılım öğrenme yolculuğunda daha fazla eğitime, projeye ve mentor desteğine mi ihtiyacın var? Patika+'ın 4-8 aylık yoğun kamplarına katıl, proje tabanlı canlı dersler ve sana özel hazırlanmış eğitimlerle gereken tüm yetenekleri kazan, iş hayatına başla!
Yorum yapabilmek için derse kayıt olmalısın!