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.

 

 

 

 

 

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir