1. Listeler ve Liste Metotları
Listeler, Python’da birden fazla öğeyi bir arada tutmamızı sağlayan en temel veri yapılarından biridir.
Oluşturma ve İndeksleme
my_list = [1, 2, 3, 4, 5]
print(my_list[0]) # 1
print(my_list[-1]) # 5 (son eleman)
Temel Metotlar
append()— Liste sonuna yeni eleman eklerextend()— Bir listeyi diğer listeyle birleştiririnsert()— Belirtilen indekse yeni eleman eklerremove()— Belirtilen değeri listeden çıkarırpop()— Belirtilen indeksteki öğeyi çıkarır ve döndürür
my_list = [1, 2, 3]
my_list.append(4) # [1, 2, 3, 4]
my_list.extend([5, 6]) # [1, 2, 3, 4, 5, 6]
my_list.insert(1, 10) # [1, 10, 2, 3, 4, 5, 6]
my_list.remove(10) # [1, 2, 3, 4, 5, 6]
my_list.pop(2) # [1, 2, 4, 5, 6]
Liste Dilimleme (Slicing)
my_list = [1, 2, 3, 4, 5, 6]
sliced = my_list[2:5]
print(sliced) # [3, 4, 5]
List Comprehension
Liste oluşturmanın kısa ve etkili bir yoludur:
squares = [x**2 for x in range(5)]
print(squares) # [0, 1, 4, 9, 16]
Çok Boyutlu Listeler
matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9],
]
print(matrix[1][2]) # 6
2. Tuple ve Set
Tuple (Demet)
Tuple değiştirilemez (immutable) bir veri yapısıdır. Bir kez oluşturulduktan sonra elemanları değiştirilemez.
my_tuple = (1, 2, 3)
print(my_tuple[0]) # 1
Set (Küme)
Setler, benzersiz elemanları tutan sırasız yapılardır.
my_set = {1, 2, 3, 4}
my_set.add(5)
print(my_set) # {1, 2, 3, 4, 5}
Set Operatörleri
set1 = {1, 2, 3}
set2 = {3, 4, 5}
print(set1.union(set2)) # {1, 2, 3, 4, 5} — birleşim
print(set1.intersection(set2)) # {3} — kesişim
print(set1.difference(set2)) # {1, 2} — fark
Frozen Set
Değiştirilemeyen set türüdür:
frozen_set = frozenset([1, 2, 3, 4])
# frozen_set.add(5) # Hata: değiştirilemez
3. Dictionary (Sözlük)
Anahtar-değer çiftlerinden oluşan veri yapısıdır.
my_dict = {'name': 'Alice', 'age': 25, 'city': 'New York'}
print(my_dict['name']) # Alice
Dictionary Metotları
print(my_dict.keys()) # dict_keys(['name', 'age', 'city'])
print(my_dict.values()) # dict_values(['Alice', 25, 'New York'])
print(my_dict.items()) # dict_items([('name', 'Alice'), ('age', 25), ...])
İç İçe Dictionary
nested_dict = {
'user1': {'name': 'Alice', 'age': 25},
'user2': {'name': 'Bob', 'age': 30},
}
print(nested_dict['user1']['name']) # Alice
Dictionary Comprehension
squares_dict = {x: x**2 for x in range(5)}
print(squares_dict) # {0: 0, 1: 1, 2: 4, 3: 9, 4: 16}
4. Fonksiyonlar
Fonksiyonlar, bir işi gerçekleştirmek için bir araya getirilmiş kod bloklarıdır.
Tanımlama ve Çağırma
def greet(name):
return f"Hello, {name}!"
print(greet("Python")) # Hello, Python!
Parametre Türleri (positional, keyword, default)
def my_function(a, b=2, c=3):
return a + b + c
print(my_function(1)) # 6 — b ve c varsayılan
print(my_function(1, b=5)) # 9 — b'nin değeri 5
print(my_function(1, c=10)) # 13
Lambda Fonksiyonları
Tek satırlık, anonim fonksiyonlardır:
double = lambda x: x * 2
print(double(5)) # 10
Recursive (Özyinelemeli) Fonksiyonlar
def factorial(n):
if n == 1:
return 1
return n * factorial(n - 1)
print(factorial(5)) # 120
5. Modüller ve Paketler
Built-in Modüller
import math
print(math.sqrt(16)) # 4.0
import random
print(random.randint(1, 10)) # 1-10 arasında rastgele
import datetime
print(datetime.datetime.now()) # Şu anki tarih ve saat
Import Yöntemleri
from math import pi
print(pi) # 3.141592653589793
import math as m
print(m.sqrt(25)) # 5.0
Kendi Modülünü Oluştur
mymodule.py:
def greet(name):
return f"Hello, {name}!"
main.py:
import mymodule
print(mymodule.greet("Python"))
pip ile Paket Yükleme
pip install requests
import requests
response = requests.get('https://api.github.com')
print(response.status_code) # 200
Profesyonel İpuçları
- List comprehension kullanarak hızlı bir şekilde yeni listeler oluşturabilir, karmaşık veri dönüşümlerini sadeleştirebilirsiniz
- Lambda fonksiyonları kısa ve basit işlemler için idealdir, daha karmaşık fonksiyonlar için klasik tanımı kullanın
- Set veri yapısı, listeye göre çok daha hızlı eleman arama sağlar — büyük veri kümelerinde set kullanmayı düşünün
- Modüler programlama ile kodu organize hale getirebilir, yeniden kullanılabilir parçalar oluşturabilirsiniz
Pekiştirme Soruları
- Bir liste oluşturun ve listenin ilk ve son elemanını yazdırın
- Tuple ve set arasındaki temel farklar nelerdir? Bir örnekle açıklayın
lambdafonksiyonları ne zaman kullanılır? Bir örnek yazın- İki set arasında fark işlemi nasıl yapılır? Kod ile gösterin
- İç içe dictionary oluşturun ve içindeki bir değere erişin
- Kendi modülünüzü yazıp başka bir dosyadan import edip kullanın
Günün Özeti
Bugün liste, tuple, set, dictionary, fonksiyonlar, modüller ve paketler hakkında bilgi sahibi olduk. Bunlar Python’da günlük olarak kullanacağınız temel yapılar.
Yarın Gün 3’te dosya işlemleri, hata yönetimi ve OOP temellerine geçeceğiz.