Bu yazı oluşturulurken http://www.pythonforbeginners.com/python-lists-cheat-sheet/ adresindeki yazı referans alınmıştır. Bir çok yeri doğrudan çeviri olmakla beraber bir kısmını kendim baştan yazdım. Yazım – Mantık hataları vs. bulursanız yorum yazmaktan çekinmeyin.
Liste Nedir?
Bir veya birden fazla elemanı tutmak için kullanılan en basit veri yapısıdır. Liste elemanlar topluluğudur (string, integer ve hatta diğer listeler). Listedeki her bir elemana index değeri atanır.
Listeler köşeli parantezler ile açılıp kapatılır. Listedeki her bir eleman virgül ile ayrılır. Stringlerin aksine listeler mutable – değişkendir, bunun manası listeler değiştirilebilir.
Liste Yaratma
Listeler köşeli parantez ile açılıp kapatılan, virgülle ayrılmış elamanlarla yaratılır.
Listeler bir takım değerler tutar (aynı stringlerin karakter serileri barındırması gibi).
Listeler çok kolay yaratılır, aşağıda liste oluşturmanın birkaç yolu vardır
1 2 3 4 5 6 7 8 9 10 | emptyList = [ ]
list1 = [ 'one, two, three, four, five' ]
numlist = [ 1 , 3 , 5 , 7 , 9 ]
mixlist = [ 'yellow' , 'red' , 'blue' , 'green' , 'black' ]
list = []
|
Liste Boyu
len fonksiyonunu kullanarak listenin boyunu alabiliriz.
1 2 3 | list = [ "1" , "hello" , 2 , "world" ]
len ( list )
>>> 4
|
List Append (Ekleme)
Append listenin sonuna eleman ekleyecektir. Eğer listenin başına ekleme yapmak istiyorsanız insert fonksiyonunu kullanabilirsiniz.
list.insert(0, “Files”)
1 2 3 4 5 6 7 | list = [ "Movies" , "Music" , "Pictures" ]
list .append( "Files" )
print list
>>> [ 'Movies' , 'Music' , 'Pictures' , 'Files' ]
|
List Insert (Araya ekleme)
Syntax: list.insert(x, y) # y elemanını x. elemanın önüne yerleştirecektir
1 2 3 4 5 6 7 8 9 10 11 | list = [ "Movies" , "Music" , "Pictures" ]
list .insert( 2 , "Documents" )
print list
[ 'Movies' , 'Music' , 'Documents' , 'Pictures' , 'Files' ]
list = [ "Movies" , "Music" , "Pictures" ]
list .insert( 3 , "Apps" )
|
List Remove (eleman çıkartma)
Listeden bir elemanı çıkartmak için remove metodu kullanılır. Eğer eleman listede birden fazla tekrar ediyorsa, sadece ilk eleman çıkartılır, diğerleri kalır.
Syntax: list.remove(x)
1 2 3 4 5 6 7 8 9 10 11 | List = [ 'Movies' , 'Music' , 'Files' , 'Documents' , 'Pictures' ]
list .remove( "Files" )
print list
[ 'Movies' , 'Music' , 'Documents' , 'Pictures' ]
a = [ 1 , 2 , 3 , 4 ]
a.remove( 2 )
print a
>>> [ 1 , 3 , 4 ]
|
List Extend (Liste genişletme)
Listeleri birleştirmek istediğimz zaman extend metodunu kullanabiliriz.
Syntax: list.extend(x) # x listesinin elamanlarını listeye ekleyecektir
1 2 3 4 5 | list2 = [ "Music2" , "Movies2" ]
list1.extend(list2)
print list1
>>> [ 'Movies' , 'Music' , 'Documents' , 'Pictures' , 'Music2' , 'Movies2' ]
|
List Del (Listeden silme)
Belli bir indexteki elemanı çıkartmak için del fonksiyonunu kullanırız.
1 2 3 4 5 | list = [ "Matthew" , "Mark" , "Luke" , "John" ]
del list [ 1 ]
print list
>>> [ "Matthew" , "Luke" , "John" ]
|
List Keywords
“in” terimi bir elemanın listede olup olmadığını kontrol etmek için kullanılabilir.
1 2 3 4 5 6 7 8 9 | list = [ "red" , "orange" , "green" , "blue" ]
if "red" in list :
do_something()
list = [ "red" , "orange" , "green" , "blue" ]
if "purple" not in list :
do_something()
|
List Reverse (Liste tersi)
Reverse metodu tüm listenin sıralamasını tersine çevirecektir.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | L1 = [ "One" , "two" , "three" , "four" , "five" ]
print L1
>>> [ "One" , "two" , "three" , "four" , "five" ]
for i in L1[:: - 1 ]:
print i
L = [ 0 , 10 , 20 , 40 ]
L.reverse()
print L
>>> [ 40 , 20 , 10 , 0 ]
|
List Sorting (Sıralama)
Bir listeyi sıralamanın en kolay yolu sorted fonksiyonunu kullanmaktır.
Bu fonksiyon parametre olarak bir fonksiyon alır ve sıralanmış olarak yeni bir liste döndürür. Asıl liste değişikliğe uğramaz.
sorted() fonksiyonu opsiyonel parametrelerle özelleştirilebilir. “reverse=True” parametresi listeyi tersten sıralanmış olarak döndürecektir. sorted(list, reverse=True)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | numbers = [ 5 , 1 , 4 , 3 , 2 , 6 , 7 , 9 ]
print sorted (numbers)
print numbers
my_string = [ 'aa' , 'BB' , 'zz' , 'CC' , 'dd' , "EE" ]
print sorted (my_string)
print sorted (strs, reverse = True )
list .sort()
|
List Split (Dilimleme)
Bir stringi dilimleyip liste haline getirebiliriz. Bunu yapmak için split metodunu kullanırız. Eğer metoda parametre geçirmezsek boşluk karakterine göre dilimleyecektir.
1 2 3 4 5 | list = 'one, two, three, four, five'
newlist = list .split( ',' )
print newlist
>>> [ 'one' , ' two' , ' three' , ' four' , 'five' ]
|
List Indexing
Listedeki her bir elamana 0dan başlayacak şekilde bir numara atanır. Bu numaraya index adı verilir. Bu index kullanılarak listenin elemanına doğrudan erişebiliriz.
1 2 3 4 | list = [ "first" , "second" , "third" ]
list [ 0 ] = = "first"
list [ 1 ] = = "second"
list [ 2 ] = = "third"
|
List Slicing
Bazen listenin bir kısmına ulaşmak isteyebiliriz. Python bunu dahali olarak destekler. Bir listenin elemanına ulaşmaya çalışır gibi, başlangıç ve bitiş indexleri vererek belirli bir aralıktaki değerleri liste olarak alabiliriz.
1 2 3 4 5 6 7 | colors = [ 'yellow' , 'red' , 'blue' , 'green' , 'black' ]
print colors[ 0 ]
>>> yellow
print colors [ 1 :]
>>> red, blue, green, black
|
Bu stackoverflow sayfasından alınan örneğe bakalım.
1 2 3 4 5 6 7 8 | a[baslangic:son]
a[baslangic:]
a[:son]
a[:]
|
Birde kullanabileceğimiz adım sayısı vardır.
FIXME: hem anlatım bozukluğuna bak, hemde test et
Bir diğer özellik de başlangıç ve bitiş değerleri negatif sayı olabilir, bu durumda listenin başından değilde sonundan itibaren saymamız gerekir.
List Loops
Bazen bir liste üzerindeki elemanları kullanacak bir döngü kurmak isteriz. Pythonda bunu “in” terimi kullanarak rahatlıkla yapabiliriz.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | matching = []
for term in mylist:
do something
matching = []
for term in mylist:
if test(term):
matching.append(term)
items = [ 1 , 2 , 3 , 4 , 5 ]
for i in items:
print i
|
List Methods
Calls to list methods have the list they operate on appear before the method name.
Any other values the method needs to do its job is provided in the normal way as
an extra argument inside the round brackets.
s = ['h','e','l','l','o'] # liste oluştur
s.append('d') # listenin sonuna ekle
len(s) # listedeki eleman sayısı
s.sort() # listeyi sırala
s.reverse() # listeyi ters çevir
s.extend(['w','o']) # listeyi genişlet
s.insert(1,2) # araya eleman ekle
s.remove('d') # listedeki ilk 'd' elemanını çıkart
s.pop() # listedeki son elemanı çıkart
s.pop(1) # 1 nolu indexteki elemanı çıkart
s.count('o') # listede bulunan 'o' ların sayısı
s = range(0,10) # 0 - 10 aralığındaki sayılardan oluşan bir liste oluştur
s = range(0,10,2) # yukardaki benzeri fakat bir de adım değeri belirle
Örnekler
Bu makaleyi bazı liste örnekleri göstererek bitirelim.
İlk olarak sadece sayılardan oluşan bir liste oluşturalım.
1 2 3 4 5 | list = [ 1 , 2 , 3 , 5 , 8 , 2 , 5.2 ]
i = 0
while i < len ( list ):
print list [i]
i = i + 1
|
Bir sonraki örnek listedeki elemanların ortalama değerini hesaplama.
1 2 3 4 5 6 7 8 9 | list = [ 1 , 2 , 3 , 5 , 8 , 2 , 5.2 ]
total = 0
i = 0
while i < len ( list ):
total = total + list [i]
i = i + 1
average = total / len ( list )
print average
|