Python Koleksiyonları Modülü: Gelişmiş Konteyner Türleri
Python'un koleksiyon modülünü kullanmayı öğrenin. Master Counter, defaultdict, Namedtuple, deque ve karmaşık veri yapılarının nasıl basitleştirileceği.
Genel Bakış
Python'un temel kapsayıcıları (listeler, sözlükler, kümeler ve tuple'lar) çoğu görev için yeterli olsa da, karmaşık programlar genellikle özel veri yapıları gerektirir. Bu sorunu çözmek için Python yerleşik 'koleksiyonlar' modülünü sağlar. Bu modül, ortak programlama görevlerini daha verimli bir şekilde ve daha temiz, daha kendi kendini belgeleyen sözdizimi ile çözmek için tasarlanmış yüksek performanslı konteyner veri türlerini içerir.
En kullanışlı sınıflar arasında, normal bir sözlük gibi davranan ancak eksik anahtarları otomatik olarak varsayılan bir değerle (boş bir liste veya tam sayı sıfır gibi) başlatan ve ayrıntılı anahtar kontrollerine olan ihtiyacı ortadan kaldıran 'defaultdict' vardır. Bir başka güç merkezi ise yinelenebilir bir öğedeki oluşumların çetelesini yapmak için özel olarak optimize edilmiş 'Counter' sınıfıdır. Hızlı kuyruklar ve yığınlar için, 'deque' (çift uçlu kuyruk), 'O(N)' kaymalarından muzdarip olan listelerin aksine, her iki uçta da 'O(1)' ekleme ve silme olanağı sunar.
Son olarak modül, geleneksel indekslerin yanı sıra nokta gösterimi (örneğin, 'nokta[0]' yerine 'nokta.x') kullanılarak erişilebilen hafif, demet benzeri nesneler oluşturan 'namedtuple'ı sunar. Bu size bir sınıfın okunabilirliğiyle birlikte bir Tuple'ın hızını ve değişmezliğini verir. Koleksiyon modülünü iş akışınıza dahil etmek kodunuzun zarif, performanslı ve temiz kalmasını garanti eder.
Kod ve Yürütme Çıkışı
Counter'ı kullanarak kelimeleri saymak ve defaultdict ile sözlük gruplarını düzenlemek.
from collections import Counter, defaultdict, namedtuple
# 1. Counter: Tallying items
votes = ["yes", "no", "yes", "yes", "no"]
vote_counts = Counter(votes)
print(f"Vote Counts: {vote_counts}")
print(f"Most common: {vote_counts.most_common(1)}")
# 2. defaultdict: Grouping values
grouped_data = defaultdict(list)
grouped_data["engineers"].append("Alice")
grouped_data["engineers"].append("Bob")
print(f"Grouped Data: {dict(grouped_data)}")
# 3. namedtuple: Clean records
Point = namedtuple("Point", ["x", "y"])
p = Point(10, 20)
print(f"Point x: {p.x}, Point y: {p.y}")Vote Counts: Counter({'yes': 3, 'no': 2})
Most common: [('yes', 3)]
Grouped Data: {'engineers': ['Alice', 'Bob']}
Point x: 10, Point y: 20Adım Adım Uygulama
- Counter aracılığıyla hata oluşumlarını saymak için günlük dosyalarını analiz etme
- Deque kullanarak öncelik sıraları veya görev zamanlayıcıları oluşturma
- Namedtuple kullanarak koordinat boyutlarını veya veri kayıtlarını temsil etme
Sıkça Sorulan Sorular
Kuyruk işlemleri için deque neden listeden daha hızlıdır?
Bir liste, önden eklerken veya silerken bellekteki sonraki tüm öğelerin kaydırılmasını gerektirir (O(N)). Bir deque, çift bağlantılı bir liste olarak uygulanır ve her iki uçta da O(1) işlemlerine izin verir.
Adlandırılmış bir grubun öğelerini değiştirebilir miyim?
Hayır. Adlandırılmış kayıtlar standart kayıtlardan miras aldıkları için tamamen değişmezler. Değiştirilmiş yeni bir örneği döndürmek için ._replace() yöntemini kullanmanız gerekir.
İlgili Konular
Python listeleri hakkında her şeyi öğrenin. Python'da dizileri yerel olarak nasıl oluşturacağınızı, dilimleyeceğinizi, değiştireceğinizi ve yineleyeceğinizi keşfedin.
Python SözlükleriPython Sözlüklerinde ustalaşın. Anahtar/değer çifti verilerini depolamayı, almayı ve işlemeyi öğrenin. Eşlemelere ilişkin performansı ve en iyi uygulamaları anlayın.
Python ItertoolsPython'un itertools modülünü öğrenin. Sonsuz yineleyiciler, kombinasyonlar, permütasyonlar, gruplama ve bellek açısından verimli veri işleme konusunda uzmanlaşın.
Önerilen Python Kaynakları
İlgili etkileşimli eğitimler, yardımcı sayfalar ve kod karşılaştırmalarıyla bilginizi genişletin.
Python'da Liste Nasıl Sıralanır
Python'da sort() yöntemini ve sorted() işlevini kullanarak bir listeyi nasıl sıralayacağınızı öğrenin. Özel anahtar sıralama ve ters sıralama örneklerini keşfedin.
Python String Yöntemleri Hile Sayfası
Python dize manipülasyonu için eksiksiz bir başvuru kılavuzu. Dize özelliklerini biçimlendirme, arama, bölme, değiştirme ve denetleme konusunda uzmanlaşın.
Python vs JavaScript: Hangi Programlama Dili En İyisidir?
Python ve JavaScript arasında kapsamlı bir karşılaştırma. Sözdizimi farklılıklarını, performansı, kullanım örneklerini (arka uç ve ön uç) ve kodlama örneklerini keşfedin.