Python map (), girdi olarak verilen bir yineleyicinin tüm öğelerine bir işlev uygular. Örneğin bir yineleyici, bir liste, bir demet, bir küme, bir sözlük, bir dize olabilir ve yinelenebilir bir harita nesnesi döndürür. Python haritası () yerleşik bir işlevdir.
Bu eğitimde şunları öğreneceksiniz:
- Sözdizimi:
- Map () işlevi nasıl çalışır?
- Python yerleşik işlevleriyle map () kullanma
- Bir yineleyici olarak bir dizeyle map () kullanma
- Numaralar listesiyle harita () kullanma
- Tuple ile harita () kullanma
- Sözlük ile harita () kullanma
- Set ile harita () kullanma
- Map () ile Lambda işlevini kullanma
- Map () işlevi içinde Birden Çok Yineleyici kullanma
Sözdizimi:
map(function, iterator1,iterator2… iteratorN)
Parametreler
İşte iki önemli
- function: Yineleyicide bulunan tüm öğelere uygulanacak, haritaya verilecek zorunlu bir işlev.
- yineleyici: Yinelenebilir zorunlu bir nesne. Bu bir liste, tuple vb. Olabilir. Map () işlevine birden çok yineleyici nesnesi aktarabilirsiniz.
Geri dönüş değeri
Map () işlevi, verilen işlevi yineleyici içindeki tüm öğelere uygulayacak ve yinelenebilir bir harita nesnesi, yani bir tuple, bir liste vb. Döndürecektir.
Map () işlevi nasıl çalışır?
Map () işlevi, işlev ve yinelenebilir nesne olarak iki girdi alır. Map () işlevine verilen işlev normal bir işlevdir ve verilen yinelenebilir nesnede bulunan tüm değerleri yineleyecektir.
Örneğin, bir sayı listeniz olduğunu ve sayıların her birinin karesini bulmak istediğinizi düşünün.
Çıktı almak için, verilen sayının karesini döndürecek işleve ihtiyacımız var. İşlev aşağıdaki gibi olacaktır:
def square(n):return n*n
Kareyi bulmak istediğimiz öğelerin listesi aşağıdaki gibidir:
my_list = [2,3,4,5,6,7,8,9]
Şimdi my_list'teki her bir öğenin karesini elde etmek için map () python yerleşik işlevini kullanalım.
Nihai kod aşağıdaki gibidir:
def square(n):return n*nmy_list = [2,3,4,5,6,7,8,9]updated_list = map(square, my_list)print(updated_list)print(list(updated_list))
Çıktı:
Harita () işlevinin çıktısı, çıktıda görüldüğü gibi, ekranda <0x0000002C59601748> adresinde harita nesnesi olarak görüntülenen bir harita nesnesidir.
Son çıktıyı elde etmek için haritadan çıktıyı bir for-loop kullanarak veya list () yöntemini kullanarak yinelemeniz gerekecektir. Verilen listedeki değerleri görüntüleyen kodda list () kullandım.
Yani map () fonksiyonunu kullanarak her sayının karesini elde edebiliriz. Haritaya verilen liste [2,3,4,5,6,7,8,9] idi ve square () fonksiyonunu kullanarak çıktı () haritasından [4, 9, 16, 25, 36, 49, 64, 81] aldık.
İşlev haritası (), listedeki tüm öğelere square () işlevini uygular. Örneğin, my_list değişkeni ve listeyi her sayının karesiyle günceller. Çıkış, updated_list değişkeninde saklanır.
Python yerleşik işlevleriyle map () kullanma
Python map () işlevi yerleşik bir işlevdir ve Python'da bulunan diğer yerleşik işlevlerle de kullanılabilir. Örnekte, verilen değerleri yuvarlayan Python round () yerleşik fonksiyonunu kullanacağız.
Misal:
Sahip olduğum liste my_list = [2.6743,3.63526,4.2325,5.9687967,6.3265,7.6988,8.232,9.6907].
Listede bulunan her öğe için yuvarlatılmış değerlere ihtiyacım var. Map () işlevi olarak round () işlevini kullanacağız.
my_list = [2.6743,3.63526,4.2325,5.9687967,6.3265,7.6988,8.232,9.6907]updated_list = map(round, my_list)print(updated_list)print(list(updated_list))
Çıktı:
Round () işlevi listedeki tüm öğelere uygulanır ve çıktıda gösterildiği gibi tüm değerlerin yuvarlandığı bir listeyi geri döndürür.
Bir yineleyici olarak bir dizeyle map () kullanma
Ayrıca bir dizge üzerinde map () kullanabiliriz. Python'da, bir dize bir dizi gibi davranır, böylece onu map () içinde kolayca kullanabiliriz.
Örnekte, verilen dizeyi büyük harfe dönüştürmeyle ilgilenen myMapFunc () işlevimiz var. MyMapFunc () işlevi, map () işlevine verilir. Map işlevi, dizeyi myMapFunc () öğesine ileterek verilen dizeyi büyük harfe dönüştürmeye özen gösterir.
def myMapFunc(s):return s.upper()my_str = "welcome to guru99 tutorials!"updated_list = map(myMapFunc, my_str)print(updated_list)for i in updated_list:print(i, end)
Çıktı:
Numaralar listesiyle harita () kullanma
Haritada listeyle çalışmak için () bir sayı listesi alacak ve listedeki her sayıyı 10 ile çarpacaktır.
Kullanacağımız liste: [2,3,4,5,6,7,8,9]. MyMapFunc () işlevi, verilen sayıyı 10 ile çarpma görevini üstlenir. İşlev, listeyle birlikte eşlemek için verilir.
Misal:
def myMapFunc(n):return n*10my_list = [2,3,4,5,6,7,8,9]updated_list = map(myMapFunc, my_list)print(updated_list)print(list(updated_list))
Çıktı:
Gördüğümüz çıktı, listedeki her sayının
10 ile çarpılır.
Tuple ile harita () kullanma
Tuple, Python'da virgülle ayrılmış ve yuvarlak parantez içine alınmış öğelere sahip bir nesnedir. Örnekte, dize değerleri olan bir demet alacağız. Kullanacağımız fonksiyon verilen değerleri büyük harfe çevirecektir.
Misal:
def myMapFunc(n):return n.upper()my_tuple = ('php','java','python','c++','c')updated_list = map(myMapFunc, my_tuple)print(updated_list)print(list(updated_list))
Çıktı:
Elde ettiğimiz çıktı, içindeki tüm değerlerin büyük harfe dönüştürüldüğü bir geri bildirimdir.
Sözlük ile harita () kullanma
Python'da bir sözlük küme parantezleri ({}) kullanılarak oluşturulur. Sözlük bir yineleyici olduğu için, bunu map () işlevi içinde kullanabilirsiniz. Şimdi, map () işlevi içinde yineleyici olarak bir sözlük kullanalım.
Aşağıdaki örnek, harita içinde sözlük yineleyicinin çalışmasını göstermektedir ()
def myMapFunc(n):return n*10my_dict = {2,3,4,5,6,7,8,9}finalitems = map(myMapFunc, my_dict)print(finalitems)print(list(finalitems))
Çıktı:
Set ile harita () kullanma
Python'da küme, küme parantezleri (()) içinde sıralanmamış bir öğe koleksiyonudur. Set () aynı zamanda bir yineleyici olduğundan, onu map () işlevi içinde kullanabilirsiniz.
Harita içinde yineleyici olarak kümeyi kullanmanın çalışan bir örneği ()
def myMapFunc(n):return n*10my_set = {2,3,4,5,6,7,8,9}finalitems = map(myMapFunc, my_set)print(finalitems)print(list(finalitems))
Çıktı:
Map () ile Lambda işlevini kullanma
Python'da, anonim işlevler oluşturmak için lambda ifadeleri kullanılır. Normal işlevleri tanımlamak için def kullandığınız gibi lambda anahtar sözcüğünü kullanmanız gerekecektir.
Yani örnekte, map () içindeki lambda fonksiyonunu kullanacağız. Lambda işlevi, listedeki her bir değeri 10 ile çarpar.
Misal:
my_list = [2,3,4,5,6,7,8,9]updated_list = map(lambda x: x * 10, my_list)print(updated_list)print(list(updated_list))
Çıktı:
Map () işlevi içinde Birden Çok Yineleyici kullanma
Örnek 1: İki liste yineleyicisini map () öğesine aktarma
Map () fonksiyonuna aynı anda birden fazla yineleyici, yani bir liste, bir kayıt vb. Gönderebilirsiniz.
Örneğin, iki liste eklemek istiyorsanız. Aynı şey map () işlevi kullanılarak da yapılabilir. My_list1 ve my_list2 olmak üzere iki listeden yararlanacağız.
Aşağıdaki örnekte, my_list1'deki ilk öğe, my_list2'nin ilk öğesine eklenir. MyMapFunc () işlevi, my_list1 ve my_list2 öğelerini alır ve her ikisinin toplamını döndürür.
Map () işlevini kullanarak verilen iki listeyi eklemenin çalışma örneğini burada bulabilirsiniz.
def myMapFunc(list1, list2):return list1+list2my_list1 = [2,3,4,5,6,7,8,9]my_list2 = [4,8,12,16,20,24,28]updated_list = map(myMapFunc, my_list1,my_list2)print(updated_list)print(list(updated_list))
Çıktı:
Örnek 2: Bir Tuple ve bir liste yineleyicisini map () için aktarma
Map () fonksiyonunda bir liste ve bir tuple yineleyici kullanacağız. İşlev eşlemeye verilir - myMapFunc () listeden ve Tuple'dan öğeleri alır. Öğeler bir alt çizgi (_) ile birleştirilecektir. Çalışma örneği aşağıda gösterildiği gibidir:
def myMapFunc(list1, tuple1):return list1+"_"+tuple1my_list = ['a','b', 'b', 'd', 'e']my_tuple = ('PHP','Java','Python','C++','C')updated_list = map(myMapFunc, my_list,my_tuple)print(updated_list)print(list(updated_list))
Çıktı:
Özet
- Python map (), girdi olarak verilen bir yineleyicinin tüm öğelerine bir işlev uygulayan yerleşik bir işlevdir. Örneğin bir yineleyici, bir liste, bir demet, bir dize vb. Olabilir ve yinelenebilir bir harita nesnesi döndürür.
- Map () işlevi, verilen işlevi yineleyici içindeki tüm öğelere uygulayacak ve yinelenebilir bir harita nesnesi, yani bir tuple, bir liste vb. Döndürecektir.
- Python map () işlevi yerleşik bir işlevdir ve Python'da bulunan diğer yerleşik işlevlerle de kullanılabilir.
- Tuple, Python'da virgülle ayrılmış ve yuvarlak parantez içine alınmış öğelere sahip bir nesnedir. Örnekte, dize değerlerine sahip bir demet alacaktır. Kullanacağımız fonksiyon verilen değerleri büyük harfe çevirecektir.
- Python'da bir sözlük küme parantezleri ({}) kullanılarak oluşturulur. Sözlük bir yineleyici olduğu için, bunu map () işlevi içinde kullanabilirsiniz.
- Python'da küme, küme parantezleri (()) içinde sıralanmamış bir öğe koleksiyonudur. Set () aynı zamanda bir yineleyici olduğundan, onu map () işlevi içinde kullanabilirsiniz.
- Python'da, anonim işlevler oluşturmak için lambda ifadeleri (veya lambda formları) kullanılır. Bu nedenle, lambda anahtar kelimesi map () içinde lambda kullanmak istediğinizde kullanılmalıdır.
- Map () işlevine birden fazla yineleyici, yani bir liste, bir kayıt gönderebilirsiniz.