Veri yapısı nedir Python üzerinden örnek verebilir misiniz?
Veri tipi nedir Python üzerinden örnek verebilir misiniz?
Veri yapısı ve veri tipi aynı şeyler midir? Değillerse aralarındaki fark nedir?
Veri tipi basit olarak compilere veya interpretere programcının veriyi nasıl kullanacağından bahsetmesidir.
Veri yapısı ise bilgisayarda veriyi etkin olarak saklamamızı sağlar.
Basit olarak açıklanması bundan ibarettir.
Basit değil de daha detaylı cevap verebilirseniz daha işlevsel olur bu durumda çünkü hocam her yerde kısa cümleler ile anlatılmış. Farkındayım bilgisayar bilimlerine giriyor bu soru, ama bir yerde veri yapısına örnek olarak string verilirken diğer yerde list veriliyor.
str
, list
, tuple
, dict
, set
birer veri tipi olduğu kadar bir çok veri tipini depolayabildikleri için veri yapısına örnek de oluştururlar. Özetle len
fonksiyonu kullanılabilir her veri tipi aslında bir veri yapısıdır da. Yanlışım varsa düzeltin lütfen.
Sorumda tutarlı ve net olmadığımı fark ettim, soruyu güncelledim hocam. Cevabınız ile aklımda veri yapısına dair şekilllenmeler oluştu fakat tam anlayamadım. O yüzden sorumu daha yalınlaştırdım.
Veri yapısı; bir veya bir kaç veri tipini kendi bünyesinde tutabilen, depolayabilen veri tipleridir.
Örnek:
a = [1, "merhaba", {"a": 2}]
b = {"a": [1, 2, 3], "b": {"c": 1}}
c = (1, 2, "a", ["hello", "world"])
d = "1a2b3c4d"
Burada gördüğünüz gibi, bir veri yapısı, bir çok veri tipini kendi içerisinde barındırabilir.
Veri tipi; özellikleri bakımından başka verilerden ayırt edilebilir bir veri sınıfına karşılık gelir. str
, int
, float
, complex
, list
, dict
, tuple
, set
, frozenset
, bytes
… bunların hepsi veri tipidir. Ve her veri tipinin kendine göre bir takım metotları bulunur.
Hayır, aynı şey değil. Yukarıda gösterdiğim gibi bazı veri tipleri aynı zamanda veri yapısı iken; int
, float
, complex
gibi veri tipleri veri yapısı değildir. O halde her veri yapısı bir veri tipidir. Ama her veri tipi bir veri yapısı değildir.
Benim bundan anladığım data structures yani heap
, stack
, queue
, tree
, linked list
gibi eldeki veriyi işlemek için daha etkili yollar sunan yapılar.
heapq
var heap yapısına karşılık geliyor
collections.deque
var queue ve stack için uygun
Veri tipi bir dildeki degerlerin alabilecegi tip.
Veri yapisi bir algoritmanin kullanacagi degerlerin saklanacagi yapi.
Aralarindaki fark farkli soyutlama seviyelerinde olmalari. Bir dilin veri tipleri calismak icin kimi veri yapilarini kullanabilecekleri gibi, veri yapilari bir dilde yazilabilmek icin veri tipleri kullanmak zorundalar.
Farkettim. Fakat şu konu başlığı altında yeterli İngilizceniz varsa çok güzel açıklanmış:
Eğer yeterli İngilizce bilginiz yoksa burada belirtirseniz müsait olduğumda çevirip buraya yazayım
Kolay gelsin.
Konuya atılan mesajlar ve netteki araştırlarımı toparlarsam cevap şu şekilde;
Veri Tipi: Bir değişkende hangi tür verilerin saklanabileceğini tanımlar ve bunun üzerinde hangi tür işlemlerin gerçekleştirilebileceğine ilişkin kuralları belirler. Bu guruplandırma/sınıflandırma sayesinde verilerin RAM üzerinde işlenmesi ve tutulması mümkün hale gelir.
Veri Yapısı: Özellikle farklı tipteki verilerin RAM üzerinde guruplandırılarak/sınıflandırılarak tutulmasını sağlarken dediği veriyi işlemek için daha etkili yollar sunan yapılardır.
Veri yapıları ikiye ayrılıyor ilkel ve ilkel olmayanlar. datacamp üzerinden aldığım görsel ile veri yapılarını görebilirsiniz.
tuple, list, dictionary, set
bunlar aynı zamanda veri tipi değil mi? Python’da her veri yapısı aynı zamanda bir veri tipidir de.
Python has the following data types built-in by default, in these categories:
Text Type: | str |
---|---|
Numeric Types: | int, float, complex |
Sequence Types: | list, tuple, range |
Mapping Type: | dict |
Set Types: | set, frozenset |
Boolean Type: | bool |
Binary Types: | bytes, bytearray, memoryview |
Cevabı bilmediğim için ve kaynaklarda denk gelmediği için cevaba eklmemiştim hocam, tam olarak ifade ettiğiniz gibiymiş cevabınız için tekrar teşekkür ederim.