Python İle Programlamanın Temelleri-10
Listeler
1. Liste Kavramı
Bu konuya kadar kullanılan değişkenler, bir değeri temsil ediyordu. Ancak listeler ile daha fazla değeri bir değişkene aktarmak mümkün. Aşağıdaki örnekte beş değer için beş değişken kullanılmıştır.
def main():
print(“Lütfen 5 adet sayı giriniz: “)
n1=float(input(“1. sayı: “))
n2=float(input(“2. sayı: “))
n3=float(input(“3. sayı: “))
n4=float(input(“4. sayı: “))
n5=float(input(“5. sayı: “))
print(“Girdiğiniz Sayılar :”,n1,n2,n3,n4,n5,sep=” “)
print(“Ortalama :”,(n1+n2+n3+n4+n5)/5)
main()
Ekran Çıktısı
Lütfen 5 adet sayı giriniz:
1.sayı: 23
2.sayı: 35
3.sayı: 55
4.sayı: 67
5.sayı: 98
Girdiğiniz Sayılar : 23.0 35.0 55.0 67.0 98.0
Ortalama : 55.6
5 değil de 25 değere ihtiyaç duyulsa idi bir önceki soruya 20 değer daha eklemek gerekecekti. Oysaki değişken kullanımı konusunda alternatif yaklaşımlar ile bu durum daha pratik bir şekilde çözülebilir.
def main(): toplam=0.0 girilecekSayıAdeti=5
print(“Lütfen “,girilecekSayıAdeti, ” adet sayı giriniz: “)
for i in range(0, girilecekSayıAdeti):
sayi=float(input(“Lütfen ” +str(i+1)+ “. sayıyı giriniz: “))
toplam+=sayi
print(“Ortalama :”,toplam/girilecekSayıAdeti)
main()
Ekran Çıktısı
Lütfen 5 adet sayı giriniz: Lütfen 1. sayıyı giriniz: 12
Lütfen 2. sayıyı giriniz: 23
Lütfen 3. sayıyı giriniz: 34
Lütfen 4. sayıyı giriniz: 65
Lütfen 5. sayıyı giriniz: 76
Ortalama : 42.0
1.1. Listeleri Kullanmak
Listeler, belirli bir sırada çoklu değer tutmak için kullanılır. Listeler bir anlamda string veri türüne benzemektedir. Ancak, string veri türünün aksine herhangi bir liste içerisinde herhangi bir Python nesnesi korunabilir. Bir liste, tüm değişkenler gibi yerel ve global olarak kullanılabilir. Listenin kullanılmadan önce tanımlanması gerekmektedir.
Liste kullanırken değerler köşeli ayraç içerisinde virgül ile ayrılarak yazılır.
lst=[2,-3,0,4,-1] A=[]
Örnek
lst=[2,-3,0,4,-1] print([2,-3,0,4,-1]) print(lst)
Ekran Çıktısı
[2,-3,0,4,-1] [2,-3,0,4,-1]
Örnek
lst=[2,-3,0,4,-1] lst[0]=5 print(lst[1]) lst[4]=12 print(lst)
print([10,20,30][1])
Ekran Çıktısı
-3
[5,-3,0,4,12]
20
Listelerde,
Köşeli ayraç içerisindeki sayıya indeks denmektedir.
lst[0] değeri ilk değerdir.
lst[1] değeri serideki ikinci değerdir.
0, başlangıç indeksi olduğu için n elemanlı bir serinin indeks değeri n-1 olur.
A[-1] değeri, A dizisindeki son elemanı ifade eder.
A[-2] ise sondan bir önceki değeri ifade eder. Bu şekilde devam eder.
Örnek
def main():
data=[10,20,30,40,50,60]
print(data[-1])
print(data[-2])
print(data[-3])
print(data[-4])
print(data[-5])
print(data[-6])
main() # Ana program çalıştırılıyor
Ekran Çıktısı
60
50
40
30
20
10
1.2. Listelerin Farklı Kullanımları
karisikListe=[24.2,4,”Python”,”Bilisim”,19,-0.03,”kelime”]
Örnekte görüldüğü gibi bir listede tam sayı, ondalık sayı, string ve hatta fonksiyonlar olabilir. Liste içerisinde liste bile yer alabilir.
col=[23,[9.3,11.2,99.0],[23],[],4,[0,0]]
print(col)
Köşeli ayraç içerisinde ilgili değerler ile işlem yapılabilir.
nums=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10 , 11 , 12, 13, 14, 15]
print(nums[3]) nums[2]=(nums[0]+nums[9])/2; nums[1], nums[4]=sqrt(x), x+2*y
String içerisindeki değerlere de köşeli ayraçlar ile erişilebilir.
>>>s= “ABCEFGHI”
>>>s[0] “A”
>>>s[1] “B”
Köşeli ayraç içerisindeki değer bir tam sayı olmalıdır.
a[x]
Köşeli ayraç içerisinde aritmetik bir işlem yapılabilir.
a[x+3]
Geri dönen değer de kullanılabilir. Bunlar da tam sayı olmalıdır.
a[max(x,y)]
1.3. Değerler Arası Gezinme
Bir listedeki değerlerin her birini ziyaret etmeye gezinme denmektedir. Bir liste aslında tekrarlanan bir nesne gibidir ve bu nedenle elemanları arasında gezinmek için for döngüsünü kullanabiliriz.
karisikListe=[24.2,4,”Python”,”Bilisim”,19,-0.03,”kelime”]
for item in collection:
print(item) # Her bir eleman yazdırılıyor
Örnek
print(len([2,4,6,8])) a=[10,20,30] print(len(a))
>>>4
>>>3 değerlerini ekrana yazar.
Örnek
nums=[2,4,6,8]
for i in range(len(nums)-1,-1,-1):
print(nums[i])
>>>8
>>> 6
>>> 4
>>> 2 değerlerini ekrana yazar.
Örnek
nums=[2,4,6,8]
for i in reversed(nums):
print(nums[i])
Örnek
def my _ reversed(lst):
for i in range(len(lst)-1,-1,-1):
yield(lst[i])
Len(lst)-1 listedeki son değerin indeks değeridir. İkinci argüman ise döngüyü sonlandırmak içindir. Son –1 değeri ise geri saymak içindir.
2. Liste Oluşturmak
Python, liste oluşturmak için birçok yöntem sunmaktadır. Birleştirme yöntemi ile var olan iki liste tek bir liste yapılabilir. Bunun için + operatörü kullanılır.
>>> a = [2, 4, 6, 8]
>>> a
[2, 4, 6, 8]
>>> a + [1, 3, 5]
[2, 4, 6, 8, 1, 3, 5]
>>> a
[2, 4, 6, 8]
>>> a = a + [1, 3, 5]
>>> a
[2, 4, 6, 8, 1, 3, 5]
>>> a += [10]
>>> a
[2, 4, 6, 8, 1, 3, 5, 10]
>>> a += 20
Traceback (most recent call last):
File “<pyshell#14>”, line 1, in <module>
a += 20
TypeError: “int” object is not iterable
a = [2, 4, 6, 8] ifadesi ile a listesine değer atanır.
a + [1, 3, 5] ifadesi ile değerler [2, 4, 6, 8, 1, 3, 5] şeklini alır. Ancak atama gerçekleşmez. a = a + [1, 3, 5] ifadesi ile değerler değişir.
a += [10] ifadesi ile liste [2, 4, 6, 8, 1, 3, 5, 10] şeklini alır.
a += 20 ifadesi bir liste olmadığı ve tam sayı olduğu için işlem yapmaz.
Bir değişkenin değeri listeye eklenmek istenirse köşeli ayraç kullanılmalıdır.
>>> x = 2
>>> a = [0, 1]
>>> a += [x]
>>> a
[0, 1, 2]
Örnek
# Kullanıcıdan alınan sayılardan liste oluşturan program
def ListeOlustur(): sonuc = [] girilenSayi = 0
while girilenSayi >= 0:
girilenSayi= int(input(“Sayı giriniz ( Çıkış için -1): “))
if girilenSayi>= 0:
sonuc += [girilenSayi]
return sonuc def main():
sutun = ListeOlustur()
print(sutun)
main()
Ekran Çıktısı
Sayı giriniz ( Çıkış için -1): 2
Sayı giriniz ( Çıkış için -1): 3
Sayı giriniz ( Çıkış için -1): 4
Sayı giriniz ( Çıkış için -1): 55
Sayı giriniz ( Çıkış için -1): 66
Sayı giriniz ( Çıkış için -1): 77
Sayı giriniz ( Çıkış için -1): -1
[2, 3, 4, 55, 66, 77]
3. List Fonksiyonu ile Tam Sayı Liste Yapmak
Liste oluşturulmak istenirken bazen kullanıcılardan veri almak yerine liste elemanları otomatik olarak oluşturulmak istenebilir. Bu durumlarda list() fonksiyonuyla beraber range() fonksiyonu kullanılabilir. list() fonksiyonu otomatik olarak belirlenen değerlerden liste oluştururken range() fonksiyonu ise başlangıç ve bitiş değerleri arasında artım miktarına göre değerler oluşturur.
def main():
a = list(range(0, 10))
print(a)
a = list(range(10, -1, -1))
print(a)
a = list(range(0, 100, 10))
print(a)
a = list(range(-5, 6))
print(a)
main()
Ekran Çıktısı
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
[0, 10, 20, 30, 40, 50, 60, 70, 80, 90] [-5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5]
20 ile 50 Arasındaki Asal Sayılardan Liste Yapmak
from math import sqrt
def AsalKontrol(n):
if n == 2:
return True
if n < 2 or n % 2 == 0:
return False geciciDeger = 3
kok = sqrt(n)
while geciciDeger <= kok:
if n % geciciDeger == 0:
return False geciciDeger += 2
return True
def AsalAralikBelirleme(ilk, son):
for deger in range(ilk, son + 1):
if AsalKontrol(deger):
yield deger
def main():
asal = list(AsalAralikBelirleme(20, 50))
print(asal)
if _ _ name _ _ == ” _ _ main _ _ “:
main() # Programı çalıştır
Ekran Çıktısı
[23, 29, 31, 37, 41, 43, 47]
4. * Operatörü ile Liste Oluşturma
Daha önceki konularımızda * operatörü matematikteki çarpma işlemini yerine getirmek için kullanılıyordur. Liste oluşturulurken * operatörü solundaki liste elemanını sağındaki adet kadar çoğaltır.
* Operatörü string’ler ile benzer sonuç verir.
>>> ‘abc’ * 3
‘abcabcabc’
def main():
a = [0] * 10 print(a)
a = [3.4] * 5 print(a)
a = 3 * [“ABC”]
print(a)
a = 4 * [10, 20, 30]
print(a)
n = 3 # çarpım değişkeni tanımlanıyor
a = n * [“abc”, 22, 8.7]
print(a)
main()
Ekran Çıktısı
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0] [3.4, 3.4, 3.4, 3.4, 3.4] [“ABC”, “ABC”, “ABC”]
[10, 20, 30, 10, 20, 30, 10, 20, 30, 10, 20, 30] [“abc”, 22, 8.7, “abc”, 22, 8.7, “abc”, 22, 8.7]
Örnek
Listedeki değerlerin ortalamasını bulmak.
def main(): toplam = 0.0 girilecekSayiAdeti = 5 sayilar = []
print(“Lütfen”, girilecekSayiAdeti, ” adet sayi giriniz :”)
for i in range(0, girilecekSayiAdeti):
sayi = float(input(str(i+1) + ” . sayıyı giriniz : “))
sayilar += [sayi]
toplam += sayi
for sayi in sayilar: print(end=”Girilen Sayılar: “) print(sayi, end=””)
print() # Alt satıra geçiş
print(“Ortalama :”, toplam/girilecekSayiAdeti)
main()
Ekran Çıktısı
Lütfen 5 adet sayi giriniz :
1 . sayıyı giriniz : 12
2 . sayıyı giriniz : 23
3 . sayıyı giriniz : 43
4 . sayıyı giriniz : 54
Girilen Sayılar: 12.0
Girilen Sayılar: 23.0
Girilen Sayılar: 43.0
Girilen Sayılar: 54.0
Girilen Sayılar: 55.0
Ortalama : 37.4
5. Liste Üyeliği
in operatörü ile listenin elemanları üzerinde işlem yapılabilir. True veya false değeri döndürür.
liste = list(range(0, 21, 2))
for i in range(-2, 23):
if i in liste:
print(i,” eleman, “, liste,” listesinin bir üyesidir.”)
if i not in liste:
print(i,” eleman “, liste, “listesinin bir üyesi değildir.”)
Ekran Çıktısı
-2 eleman [0,2,4,6,8,10,12,14,16,18,20] listesinin bir üyesi değildir.
-1 eleman [0,2,4,6,8,10,12,14,16,18,20] listesinin bir üyesi değildir.
0 eleman, [0,2,4,6,8,10,12,14,16,18,20] listesinin bir üyesidir.
1 eleman [0,2,4,6,8,10,12,14,16,18,20] listesinin bir üyesi değildir.
2 eleman, [0,2,4,6,8,10,12,14,16,18,20] listesinin bir üyesidir.
3 eleman [0,2,4,6,8,10,12,14,16,18,20] listesinin bir üyesi değildir.
4 eleman, [0,2,4,6,8,10,12,14,16,18,20] listesinin bir üyesidir.
5 eleman [0,2,4,6,8,10,12,14,16,18,20] listesinin bir üyesi değildir.
6 eleman, [0,2,4,6,8,10,12,14,16,18,20] listesinin bir üyesidir.
7 eleman [0,2,4,6,8,10,12,14,16,18,20] listesinin bir üyesi değildir.
8 eleman, [0,2,4,6,8,10,12,14,16,18,20] listesinin bir üyesidir.
9 eleman [0,2,4,6,8,10,12,14,16,18,20] listesinin bir üyesi değildir.
10 eleman, [0,2,4,6,8,10,12,14,16,18,20] listesinin bir üyesidir.
11 eleman [0,2,4,6,8,10,12,14,16,18,20] listesinin bir üyesi değildir.
12 eleman, [0,2,4,6,8,10,12,14,16,18,20] listesinin bir üyesidir.
13 eleman [0,2,4,6,8,10,12,14,16,18,20] listesinin bir üyesi değildir.
14 eleman, [0,2,4,6,8,10,12,14,16,18,20] listesinin bir üyesidir.
15 eleman [0,2,4,6,8,10,12,14,16,18,20] listesinin bir üyesi değildir.
16 eleman, [0,2,4,6,8,10,12,14,16,18,20] listesinin bir üyesidir.
17 eleman [0,2,4,6,8,10,12,14,16,18,20] listesinin bir üyesi değildir.
18 eleman, [0,2,4,6,8,10,12,14,16,18,20] listesinin bir üyesidir.
19 eleman [[0,2,4,6,8,10,12,14,16,18,20] listesinin bir üyesi değildir.
20 eleman, [0,2,4,6,8,10,12,14,16,18,20]] listesinin bir üyesidir.
21 eleman [0,2,4,6,8,10,12,14,16,18,20] listesinin bir üyesi değildir.
22 eleman [0,2,4,6,8,10,12,14,16,18,20] listesinin bir üyesi değildir.
6. Listeye Değer Atama ve Eşitleme
Örnek
a=[10,20,30,40]
b=[10,20,30,40]
print(“a =”,a)
print(“b =”,b)
b[2]=35
print(“a =”,a)
print(“b =”,b)
Ekran Çıktısı
a=[10,20,30,40]
b=[10,20,30,40]
a=[10,20,30,40]
b=[10,20,35,40]
Programın çalışma süreci aşağıda verilen resimdeki gibidir.
Örnek
a=[10,20,30,40]
b=a
print(“a =”,a)
print(“b =”,b)
b[2]=35
print(“a =”,a)
print(“b =”,b)
Ekran Çıktısı
a=[10,20,30,40
b=[10,20,30,40]
a=[10,20,30,40]
b=[10,20,35,40]
Programın çalışma süreci aşağıda verilen resimdeki gibidir.
Örnek
a=[10,20,30,40]
b=[10,20,30,40]
print(a,”değeri “,b,” değerine eşit mi?”,sep=””,end=” “)
print(a==b)
print(a,”değeri “,b,” değeri ile aynı mı?”,sep=””,end=” “)
print(a is b) c=[100,200,300,400] d=c
print(c,”değeri “,d,” değerine eşit mi?”,sep=””,end=” “)
print(c==d)
print(c,”değeri “,d,” değeri ile aynı ma?”,sep=””,end=” “)
print(c is d)
Ekran Çıktısı
[10, 20, 30, 40]değeri [10, 20, 30, 40] değerine eşit mi? True
[10, 20, 30, 40]değeri [10, 20, 30, 40] değeri ile aynı mı? False
[100, 200, 300, 400]değeri [100, 200, 300, 400] değerine eşit mi? True
[100, 200, 300, 400]değeri [100, 200, 300, 400] değeri ile aynı mı? True
İki değişkenin değerlerinin aynı olması (== ile karşılaştırma) ile değişkenlerin aynı olması (is ile karşılaştırma), farklı durumlardır. Örnekte a ve b değişkenlerinin değerleri aynıdır dolayısıyla == ile karşılaştırma yapıldıklarında True değerini verir. Ancak değişken değerlerinin atamaları ayrı yapıdığı için is ile karşılaştırma yapıldığında False değeri verir. Bu durum c ile d değişkenlerinde ayrılır. Çünkü d değişkenine c değişkeni atanmış ve birbirlerine eşitlenmiştir. Dolayısıyla is ile karşılaştırma yapıldığında True değerini döndürür.
Örnek
def ListeKopyala(lst):
result=[]
for item in lst:
result+=[item]
return result def main():
a=[10,20,30,40] b=ListeKopyala(a) print(“a =”,a, ” b =”,b)
print(a, “listesi ile “,b, “listesi değerleri eşit mi?”,sep=””,end=””)
print(a==b)
print(a, ” ile “,b, ” listeleri aynı mı?”,sep=””,end=””)
print(a is b)
b[2]=35
print(“a =”,a, ” b =”,b)
main()
Ekran Çıktısı
a = [10, 20, 30, 40] b = [10, 20, 30, 40]
[10, 20, 30, 40]listesi ile [10, 20, 30, 40]listesi değerleri eşit mi?True
[10, 20, 30, 40] ile [10, 20, 30, 40] listeleri aynı mı?False
a = [10, 20, 30, 40] b = [10, 20, 35, 40]
Bu örnekte a adında bir liste tanımlanmış ve bu listenin ListeKopyala() fonksiyonu ile kopyası b değişkenine oluşturulmuştur. İki liste değerleri birbirine eşittir. Fakat birbirlerine eşitlenme durumu False’dur.
Örnek
print(list(range(11)))
print(list(range(10,101,10)))
print(list(range(10,-1,-1)))
Ekran Çıktısı
[0,1,2,3,4,5,6,7,8,9,10]
[10,20,30,40,50,60,70,80,90,100]
[10,9,8,7,6,5,4,3,2,1,0]
7. Listenin Sınırları
a=[10,20,30,40] listesinde a[0], a[1], a[2] ve a[3] değerleri bulunurken a[4] değeri bulunmamaktadır. a=[10,20,30,40]
print(a[4]) # listenin sınırı dışından bir erişim yapılmaya çalışılmaktadır.
Bu durumda IndexError hatası oluşur.
# Değerleri 0 olan 100 elemanlı liste oluşturuluyor
v=[0]*100
x=int(input(“Bir sayı giriniz: “))
# Girilen değer liste sınırları içerisinde mi?
if 0<=x<len(v):
v[x]=1 # Girilen indis değeri 1 olarak değiştiriliyor
else:
print(“Girdiğiniz değer liste sınırları arasında değil”)
8. Dilimleme
Bir liste dilimlenerek başka bir liste oluşturulabilir. Bir listeyi dilimlemek için aşağıdaki ifadeyi kullanmak gerekir.
list [ başlangıç : bitiş : artım miktarı ]
List: liste değişkenini,
başlangıç: listenin başlangıç indeksini,
bitiş: listenin son elemanının indeksini,
artım miktarı: verilen aralıktaki eleman sayısını belirtir.
Lst= [10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120]
print(Lst) # [10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120]
print(Lst[0:3]) # [10, 20, 30]
print(Lst[4:8]) # [50, 60, 70, 80]
print(Lst[2:5]) # [30, 40, 50]
print(Lst[-5:-3]) # [80, 90]
print(Lst[:3]) # [10, 20, 30]
print(Lst[4:]) # [50, 60, 70, 80, 90, 100, 110, 120]
print(Lst[:]) # [10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120]
print(Lst[-100:3]) # [10, 20, 30]
print(Lst[4:100]) # [50, 60, 70, 80, 90, 100, 110, 120]
print(Lst[2:-2:2]) # [30, 50, 70, 90]
print(Lst[::]) # [10, 30, 50, 70, 90, 110]
print(Lst[::-1]) # [120, 110, 100, 90, 80, 70, 60, 50, 40, 30, 20, 10]
8.1. Dilimleme İçin Farklı Kullanımlar
>>>a=[34,-19,20,8,12]
>>>print(a)
[34,-19,20,8,12]
>>>print(a[0:1]) [34]
>>>print(a[0])
34
>>>b=[[2,5],7,[11,4]]
>>>print(b) [[2,5],7,[11,4]]
>>>print(b[0:1]) [[2,5]]
>>>print(b[0]) [2,5]
8.2. Dilimleme Örnekleri
Örnek
a=[1,2,3,4,5,6,7,8]
print(“Listenin Soldan Başlanarak Dilimlenmesi”,a)
for i in range(0,len(a)+1):
print(“<“,a[0:i], “>”,sep=””)
print(“———————————-“)
print(“”,a)
for i in range(0,len(a)+1):
print(“<“,a[i:len(a)+1], “>”,sep=””)
Ekran Çıktısı
Litenin Soldan Başlanarak Dilimlenmesi [1, 2, 3, 4, 5, 6, 7, 8]
<[]>
<[1]>
<[1, 2]>
<[1, 2, 3]>
<[1, 2, 3, 4]>
<[1, 2, 3, 4, 5]>
<[1, 2, 3, 4, 5, 6]>
<[1, 2, 3, 4, 5, 6, 7]>
<[1, 2, 3, 4, 5, 6, 7, 8,]>
———————————–
Litenin Sağdan Başlanarak Dilimlenmesi [1, 2, 3, 4, 5, 6, 7, 8]
<[1, 2, 3, 4, 5, 6, 7, 8,]>
<[2, 3, 4, 5, 6, 7, 8,]>
<[3, 4, 5, 6, 7, 8,]>
<[4, 5, 6, 7, 8,]>
<[5, 6, 7, 8,]>
<[6, 7, 8,]>
<[7, 8,]>
<[8,]>
<[]>
Örnek
lst=[10,20,30,40,50,60,70,80]
print(lst) # Liste yazdırılıyor
lst[2:5]=[“a”, “b”, “c”] #[30, 40, 50] değerleri [“a”, “b”, “c”]
değerleri ile değiştiriliyor
print(lst)
print(“——————-“) lst=[10,20,30,40,50,60,70,80] print(lst) # Liste yazdırılıyor
lst[2:6]=[“a”,”b”] #[30, 40, 50, 60] değerleri [“a”, “b”] değerleri ile değiştiriliyor
print(lst)
print(“——————-“) lst=[10,20,30,40,50,60,70,80] print(lst) # Liste yazdırılıyor
lst[2:2]=[“a”, “b”, “c”] # 2 nolu indexten başlayarak [“a”, “b”, “c”] değerleri ekleniyor
print(lst)
print(“——————-“) lst=[10,20,30,40,50,60,70,80] print(lst) # Liste yazdırılıyor
lst[2:5]=[] # [30, 40, 50] değerleri yerine [] atanıyor. (değerler siliniyor)
print(lst)
Ekran Çıktısı
[10, 20, 30, 40, 50, 60, 70, 80] [10, 20, “a”, “b”, “c”, 60, 70, 80]
================
[10, 20, 30, 40, 50, 60, 70, 80] [10, 20, “a”, “b”, 70, 80]
================
[10, 20, 30, 40, 50, 60, 70, 80]
[10, 20, “a”, “b”, “c”, 30, 40, 50, 60, 70, 80]
================
[10, 20, 30, 40, 50, 60, 70, 80] [10, 20, 60, 70, 80]
================
Listeler üzerinde değerleri değiştirme, değerler ekleme veya değerleri silme işlemleri yapılabilir.
9. Listeden Eleman Çıkarma
Listeden bir eleman silmek için del komutu kullanılır.
Örnek
>>>a=list(range(10,51,10))
>>>a
[10,20,30,40,50]
>>>del a[2]
>>>a
[10,20,40,50]
Örnek
>>>b=list(range(20))
>>>b
[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19]
>>>del b[5:15]
>>>b
[0,1,2,3,4,15,16,17,18,19]
Örnek
>>>c=list(range(20))
>>>c
[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19]
>>>del c[1],c[18]
>>>c
[0,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17]
10. Listeler ve Fonksiyonlar
Liste elemanları üzerinde, Python diline ait fonksiyonları aynı zamanda programcının yazdığı kodları kullanarak işlem yapabiliriz. Bu örneğimizde random() fonksiyon sınıfına ait metotlar ile eleman ataması yapıldı. Bu işlemler de programcı tarafından yazılan fonksiyonlar ile gruplanmıştır.
import random def Topla(lst): sonuc=0
for eleman in lst:
sonuc+=eleman return result
def SifirAta(lst):
for i in range(len(lst)):
lst[i]=0
def RastgeleDegerAta(n):
sonuc=[]
for i in range(n): RastgeleDeger=random.randrange(100) sonuc+=[RastgeleDeger]
return sonuc def main():
a=[2,4,6,8] print(a) print(sum(a)) SifirAta(a) print(a) print(sum(a)) a=[]
print(a)
print(sum(a))
a=RastgeleDegerAta(10)
print(a)
print(sum(a))
main()
Ekran Çıktısı
2, 4, 6, 8]
20
[0, 0, 0, 0]
0
[]
0
[97, 28, 13, 38, 32, 59, 94, 60, 17, 55]
493
11. Listede Kullanılan Yöntemler
Listelerde, değişen veri yapıları olduğu için __getitem__ and __setitem__ yöntemleri de kullanılır.
x=lst[2] ifadesi x=list. _ _ getitem _ _ (lst,2) ile
lst[2]=x ifadesi list. _ _ setitem _ _ (lst,2,x)
ile benzer işlem yapar.
12. Çok Boyutlu Listeler
Bir liste aslında tek boyutlu bir veri yapısıdır. İki boyutlu listeler, dikdörtgen olarak elemanlar dizisidir ve matriks olarak bilinir.
>>>print(matrix)
[[100, 14, 8, 22, 71],[0, 243, 68, 1, 30],[90, 21, 7, 67, 112], [115, 200, 70, 150, 8]]
print (matrix [2][3])
13. Çok Boyutlu Diziler
Aşağıdaki örnek iki boyutlu bir diziyi ekrana yazdırmaktadır.
matrix= [[100,14,8,22,71],
[0,243,68,1,30],
[90,21,7,67,112],
[115,200,70,150,8]]
for row in matrix:
for elem in row:
print(“{:>4}”.format(elem),end=””)
print()
Ekran Çıktısı
100 14 8 22 71
0 243 68 1 30
90 21 7 67 112
115 200 70 150 8
Dizi ve değer gösterimi, aşağıda verilen resimlerdeki gibidir.
Örnek
a=[[0]*4]*3
print(a)
a[1][2]=5
print(a)
Ekran Çıktısı
[[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]
[[0, 0, 5, 0], [0, 0, 5, 0], [0, 0, 5, 0]]
Dizi ve değer gösterimi, aşağıda verilen resimlerdeki gibidir.
14. _ Sembolü
Kullanım durumları, aşağıdaki örneklerde gösterilmektedir.
a=[[0]*4 for _ in range(3)]
veya
a=[[0 for _ in range(4)] for _ in range(3)]
Ekran Çıktısı
>>>10+4
14
>>> _
14
>>>100-60
40
>>>2+ _
42
>>>
Dizi ve değer gösterimi, aşağıda verilen resimlerdeki gibidir.
15. Liste Oluşturma Tekniklerinin Özeti
Sıralı atama
L=[2,4,6,8,10,12,14,16,18,20]
Düzensiz atama
L=[]
for i in range(2,21,2):
L+=[i]
L=[2,4,6,8,10,12,14,16,18,20]
Range kullanımı
L=list(range(2,21,2))
Liste oluşturma
L=[x for x in range(1,21) if x%2==0]
Yöntemlerin birleşimi
L=list(range(2,9,2))+[10,12,14]+[x for x in range(16,21,2)]
Listeler konusu ile ilgili sunum dosyasına ve konu testine (yakında) aşağıdan ulaşabilirsiniz.