Listeler, Python'da farklı türde öğeleri saklayan ve bu öğelere verimli erişim sağlayan yerleşik veri yapılarıdır. Elinizdeki görev, listeleri N boyutunda parçalara bölmektir; bu, programınızın tek bir istekte işleyebileceği öğe sayısının sınırlı olduğu durumlarda yaygın bir uygulamadır.
Listeler
Listeler, kendi içinde karışık değerler veya öğeler tutabilen veri yapılarıdır. Örnek olarak tamsayılar, ondalık sayılar, dizgeler vb. verilebilir. Listeler değiştirilebilir (mutable) yapıdadır; yani, kimliğini değiştirmeden bir listenin içeriğini değiştirebilirsiniz. Köşeli parantezler [] ile yazılırlar ve içindeki öğeler virgül (,) ile ayrılır. Üzerinde çalışabileceğimiz bir sayı listesi oluşturalım...
# Creating a list of 95 numbers
list_numbers =list(range(1,96))print(list_numbers)Altyapı:
range() fonksiyonu bir sayı dizisi üretir. Şu biçimdedir: range([start], stop[, step]); burada 'start' ve 'step' isteğe bağlıdır. start dizideki başlangıç sayısıdır, stop ise üretimin ulaşacağı ama dahil edilmeyecek sayıdır. step ise dizideki ardışık sayılar arasındaki farktır. Bu fonksiyon 0 tabanlıdır; yani başlangıç belirtilmediğinde liste indeksleri 1'den değil 0'dan başlar.
Şimdi, diyelim ki listeyi her biri 5 öğeden oluşan daha küçük listelere bölmeniz gerekiyor.
Bunu yapmanın bir yolu, bir generator tanımlamaktır. Generator, bir iterator tanımlamanın zarif bir yoludur. Peki iterator nedir? Basitçe söylemek gerekirse, yinelediğiniz bir nesnedeki bir sonraki öğeyi nasıl hesaplayacağını ve döndüreceğini bilen bir nesnedir. Iterator ve generator'lar hakkında daha fazla bilgiyi DataCamp'in Python Iterator Eğitiminde bulabilirsiniz.
Asıl işi bizim için yapan generator'ı barındıran bir fonksiyon tanımlıyoruz.
# Yields successive 'n' sized chunks from list 'list_name'defcreate_chunks(list_name, n):for i inrange(0,len(list_name), n):yield list_name[i:i + n]# Call the 'create_chunks' function to divide the list further into sub-lists of 10 items eachprint(list(create_chunks(list_numbers,10)))Altyapı:
Aynı işi yapmanın bir diğer yolu ise liste üreteçlerini (list comprehension) kullanmaktır. Bunun hakkında daha fazlasını DataCamp'in Python List Comprehension Eğitiminde okuyabilirsiniz.
print([list_numbers[i: i+10]for i inrange(0,len(list_numbers),10)])Altyapı:
Sorun karmaşıklaştıkça, list comprehension ifadeleri anlaşılması ve hata ayıklaması giderek zorlaşabilir. Bu nedenle, generator ile olduğu gibi temiz bir fonksiyon yazmak daha kullanışlı ve takibi daha kolay olabilir.
Bu eğitimde, listelerle çalışırken oldukça sık karşılaşılan bir sorunu çözmenin iki yolunu öğrendiniz. DataCamp'in Veri Bilimi için Veri Türleri kursuna göz atın.
Algoritmalar, sistem tasarımı ve davranışsal senaryoları kapsayan bu temel sorularla teknik mülakat sürecine hakim olun. Uzman cevapları, kod örnekleri ve kanıtlanmış hazırlık stratejileri edinin.
Git deponuzu temiz tutmak için .gitignore’u nasıl kullanacağınızı öğrenin. Bu eğitim; temelleri, yaygın kullanım durumlarını ve başlamanıza yardımcı olacak pratik örnekleri kapsar!
Python veri türleri olan listeler, sözlükler ve demetler hakkındaki bilginizi pekiştirin ve genişletin; bunları Veri Bilimi problemlerini çözmek için kullanın.
Listeler, Python'da farklı türde öğeleri saklayan ve bu öğelere verimli erişim sağlayan yerleşik veri yapılarıdır. Elinizdeki görev, listeleri N boyutunda parçalara bölmektir; bu, programınızın tek bir istekte işleyebileceği öğe sayısının sınırlı olduğu durumlarda yaygın bir uygulamadır.
Listeler
Listeler, kendi içinde karışık değerler veya öğeler tutabilen veri yapılarıdır. Örnek olarak tamsayılar, ondalık sayılar, dizgeler vb. verilebilir. Listeler değiştirilebilir (mutable) yapıdadır; yani, kimliğini değiştirmeden bir listenin içeriğini değiştirebilirsiniz. Köşeli parantezler [ ] ile yazılırlar ve içindeki öğeler virgül (,) ile ayrılır. Üzerinde çalışabileceğimiz bir sayı listesi oluşturalım...
range()fonksiyonu bir sayı dizisi üretir. Şu biçimdedir:range([start], stop[, step]); burada 'start' ve 'step' isteğe bağlıdır. start dizideki başlangıç sayısıdır, stop ise üretimin ulaşacağı ama dahil edilmeyecek sayıdır. step ise dizideki ardışık sayılar arasındaki farktır. Bu fonksiyon 0 tabanlıdır; yani başlangıç belirtilmediğinde liste indeksleri 1'den değil 0'dan başlar.Şimdi, diyelim ki listeyi her biri 5 öğeden oluşan daha küçük listelere bölmeniz gerekiyor.
Bunu yapmanın bir yolu, bir generator tanımlamaktır. Generator, bir iterator tanımlamanın zarif bir yoludur. Peki iterator nedir? Basitçe söylemek gerekirse, yinelediğiniz bir nesnedeki bir sonraki öğeyi nasıl hesaplayacağını ve döndüreceğini bilen bir nesnedir. Iterator ve generator'lar hakkında daha fazla bilgiyi DataCamp'in Python Iterator Eğitiminde bulabilirsiniz.
Asıl işi bizim için yapan generator'ı barındıran bir fonksiyon tanımlıyoruz.
[[1, 2, 3, 4, 5, 6, 7, 8, 9, 10], [11, 12, 13, 14, 15, 16, 17, 18, 19, 20], [21, 22, 23, 24, 25, 26, 27, 28, 29, 30], [31, 32, 33, 34, 35, 36, 37, 38, 39, 40], [41, 42, 43, 44, 45, 46, 47, 48, 49, 50], [51, 52, 53, 54, 55, 56, 57, 58, 59, 60], [61, 62, 63, 64, 65, 66, 67, 68, 69, 70], [71, 72, 73, 74, 75, 76, 77, 78, 79, 80], [81, 82, 83, 84, 85, 86, 87, 88, 89, 90], [91, 92, 93, 94, 95]]Aynı işi yapmanın bir diğer yolu ise liste üreteçlerini (list comprehension) kullanmaktır. Bunun hakkında daha fazlasını DataCamp'in Python List Comprehension Eğitiminde okuyabilirsiniz.
[[1, 2, 3, 4, 5, 6, 7, 8, 9, 10], [11, 12, 13, 14, 15, 16, 17, 18, 19, 20], [21, 22, 23, 24, 25, 26, 27, 28, 29, 30], [31, 32, 33, 34, 35, 36, 37, 38, 39, 40], [41, 42, 43, 44, 45, 46, 47, 48, 49, 50], [51, 52, 53, 54, 55, 56, 57, 58, 59, 60], [61, 62, 63, 64, 65, 66, 67, 68, 69, 70], [71, 72, 73, 74, 75, 76, 77, 78, 79, 80], [81, 82, 83, 84, 85, 86, 87, 88, 89, 90], [91, 92, 93, 94, 95]]Sorun karmaşıklaştıkça, list comprehension ifadeleri anlaşılması ve hata ayıklaması giderek zorlaşabilir. Bu nedenle, generator ile olduğu gibi temiz bir fonksiyon yazmak daha kullanışlı ve takibi daha kolay olabilir.
Bu eğitimde, listelerle çalışırken oldukça sık karşılaşılan bir sorunu çözmenin iki yolunu öğrendiniz. DataCamp'in Veri Bilimi için Veri Türleri kursuna göz atın.