Python map() Fonksiyonu ve Örnekleri

⚡ Akıllı Özet

Python `map()` fonksiyonu, liste, demet, küme, sözlük veya dize gibi yinelenebilir bir nesnenin her öğesine verilen bir fonksiyonu uygular. `list()` fonksiyonuyla dönüştürebileceğiniz veya bir döngü kullanarak yineleyebileceğiniz tembel bir `map` nesnesi döndürür.

  • 🔢 Sözdizimi: `map()` fonksiyonu, bir fonksiyon ve bir veya daha fazla yinelenebilir nesne alır ve bu fonksiyonu her bir öğeye uygular.
  • 🔁 Geri dönüş değeri: `map()` fonksiyonu tembel bir harita nesnesi döndürür, bu nedenle sonuçları görüntülemek için `list()`, `tuple()` veya `set()` içine alın.
  • 🧩 Yinelenebilir nesneler: Listeler, demetler, kümeler, sözlükler ve dizeler, map() fonksiyonuna girdi olarak kullanılabilir.
  • Lambda: `map()` fonksiyonunu `lambda` ifadesiyle birlikte kullanmak, basit dönüşümler için ayrı bir adlandırılmış fonksiyon tanımlama ihtiyacını ortadan kaldırır.
  • Birden fazla yinelenebilir nesne: Birden fazla yinelenebilir nesneyi geçirmek, fonksiyonu bunlar üzerinde paralel olarak uygular, durdurur.ping en kısa sürede.
  • 🤖 Yapay zeka yardımı: GitHub Copilot gibi yapay zeka asistanları map() çağrıları oluşturur ve harita tarzı dönüşümler makine öğrenimindeki veri işlem hatlarına veri sağlar.

Python harita() İşlevi

Sözdizimi

map(function, iterator1,iterator2 ...iteratorN)

Parametreler

İşte iki önemli parametre:

  • işlevi: map() fonksiyonuna verilmesi zorunlu olan ve yineleyici içinde bulunan tüm öğelere uygulanacak bir fonksiyon.
  • yineleyici: Zorunlu bir yinelenebilir nesne. Liste, demet vb. olabilir. map() fonksiyonuna birden fazla yineleyici nesne geçirebilirsiniz.

Geri dönüş değeri

`map()` fonksiyonu, yineleyici içindeki tüm öğelere verilen fonksiyonu uygular ve yinelenebilir bir harita nesnesi, yani bir demet, bir liste vb. döndürür.

Map() işlevi nasıl çalışır?

`map()` fonksiyonu iki girdi alır: bir fonksiyon ve yinelenebilir bir nesne. `map()` fonksiyonuna verilen fonksiyon normal bir fonksiyondur ve yinelenebilir nesnede bulunan tüm değerler üzerinde yineleme yapar.

Örneğin, bir sayılar listeniz olduğunu ve sayıların her birinin karesini bulmak istediğinizi düşünün.

Çıktıyı elde etmek için, verilen sayının karesini döndürecek bir fonksiyona ihtiyacımız var. Fonksiyon şu şekildedir:

def square(n):
	return n*n

Karesini 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 almak için map() yerleşik fonksiyonunu kullanalım.

Son kod aşağıdaki gibidir:

def square(n):
    return n*n
my_list = [2,3,4,5,6,7,8,9]
updated_list = map(square, my_list)
print(updated_list)
print(list(updated_list))

Çıktı:

<map object at 0x0000002C59601748>
[4, 9, 16, 25, 36, 49, 64, 81]

Yukarıda görüldüğü gibi, map() fonksiyonunun çıktısı ekranda görüntülenen bir harita nesnesidir. .

Son çıktıyı elde etmek için `map()` fonksiyonunun çıktısını bir `for` döngüsü veya `list()` metodu kullanarak yinelemeniz gerekecek. Kodda, verilen listedeki değerleri görüntülemek için `list()` metodunu kullandım.

Dolayısıyla, map() fonksiyonunu kullanarak her sayının karesini alabiliyoruz. map() fonksiyonuna verilen liste [2,3,4,5,6,7,8,9] idi ve square() fonksiyonunu kullanarak elde ettiğimiz çıktı [4, 9, 16, 25, 36, 49, 64, 81] oldu.

`map()` fonksiyonu, listedeki tüm öğelere `square()` fonksiyonunu uygular. Örneğin, `my_list` değişkenini alır ve listedeki her sayının karesini alarak listeyi günceller. Çıktı, `updated_list` değişkeninde saklanır.

Map() işlevini kullanma Python yerleşik işlevler

MKS Python Map() işlevi yerleşik bir işlevdir ve aynı zamanda mevcut diğer yerleşik işlevlerle de kullanılabilir. PythonBu örnekte, şunlardan faydalanacağız: Python round() fonksiyonu, verilen değerleri yuvarlar.

Örnek:

Elimdeki liste şu şekilde: my_list = [2.6743,3.63526,4.2325,5.9687967,6.3265,7.6988,8.232,9.6907]. Listedeki her öğenin yuvarlanmış değerlerine ihtiyacım var, bu nedenle map() fonksiyonunda round() fonksiyonunu 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ı:

<map object at 0x000000E65F901748>
[3, 4, 4, 6, 6, 8, 8, 10]

`round()` fonksiyonu listedeki tüm öğelere uygulanır ve çıktıda gösterildiği gibi tüm değerlerin yuvarlanmış halini içeren bir liste döndürür.

Map() işlevini bir yineleyici olarak bir dizeyle kullanma

Ayrıca bir dize üzerinde harita() işlevini de kullanabiliriz. İçinde PythonBir dize, bir dizi gibi davranır, bu nedenle onu map() fonksiyonunun içinde kolayca kullanabiliriz.

Bu örnekte, verilen dizeyi büyük harfe dönüştürme işlemini gerçekleştiren myMapFunc() adlı bir fonksiyonumuz var. myMapFunc() fonksiyonu map() fonksiyonuna veriliyor. map() fonksiyonu, verilen dizeyi myMapFunc() fonksiyonuna ileterek büyük harfe dönüştürme işlemini gerçekleştiriyor.

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ı:

<map object at 0x000000DF2E711748>
WELCOME TO GURU99 TUTORIALS!

Bir Liste ile map() kullanmak Numbers

`map()` fonksiyonunda listelerle çalışmak için, bir sayı listesi alacağız ve listedeki her sayıyı 10 ile çarpacağız.

Kullanacağımız liste [2,3,4,5,6,7,8,9] şeklindedir. myMapFunc() fonksiyonu verilen sayıyı 10 ile çarpmayı sağlar. Fonksiyon, liste ile birlikte map() fonksiyonuna verilir.

Örnek:

def myMapFunc(n):
    return n*10

my_list = [2,3,4,5,6,7,8,9]

updated_list = map(myMapFunc, my_list)
print(updated_list)
print(list(updated_list))

Çıktı:

<map object at 0x000000EE2C061898>
[20, 30, 40, 50, 60, 70, 80, 90]

Gördüğümüz sonuç, listedeki her sayının 10 ile çarpılmasıdır.

Tuple ile haritayı () kullanma

Bir Tuple bir nesnedir Python Virgülle ayrılmış ve yuvarlak parantez içine alınmış öğeler içeren bir demet. Bu örnekte, dize değerlerine sahip bir demet alacağız. Kullanacağımız fonksiyon, verilen değerleri büyük harfe dönüştürecektir.

Örnek:

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ı:

<map object at 0x0000009C3C3A16A0>
['PHP', 'JAVA', 'PYTHON', 'C++', 'C']

Elde ettiğimiz çıktı, içindeki tüm değerlerin büyük harfe dönüştürüldüğü bir demettir.

Map() işlevini Sözlükle kullanma

A sözlükte Python Süslü parantezler ({}) kullanılarak oluşturulur. Sözlük bir yineleyici olduğundan, onu `map()` fonksiyonunun içinde kullanabilirsiniz. Şimdi bir sözlüğü `map()` fonksiyonunun içinde yineleyici olarak kullanalım.

Aşağıdaki örnek, `map()` fonksiyonu içinde sözlük yineleyicisinin nasıl çalıştığını göstermektedir:

def myMapFunc(n):
    return n*10
my_dict = {2,3,4,5,6,7,8,9}
finalitems = map(myMapFunc, my_dict)
print(finalitems)
print(list(finalitems))

Çıktı:

<map object at 0x0000007EB451DEF0>
[20, 30, 40, 50, 60, 70, 80, 90]

Map() işlevini Set ile kullanma

Bir set Python `set()`, süslü parantezler ({}) içindeki öğelerin sıralanmamış bir koleksiyonudur. `set()` aynı zamanda bir yineleyici olduğundan, `map()` fonksiyonunun içinde de kullanabilirsiniz.

İşte bir kümeyi map() fonksiyonu içinde yineleyici olarak kullanmanın çalışan bir örneği:

def myMapFunc(n):
    return n*10
my_set = {2,3,4,5,6,7,8,9}
finalitems = map(myMapFunc, my_set)
print(finalitems)
print(list(finalitems))

Çıktı:

<map object at 0x000000AC8F05DEF0>
[20, 30, 40, 50, 60, 70, 80, 90]

Map() işlevini Lambda işleviyle kullanma

In Pythonanonim 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ü de kullanmanız gerekecektir.

Bu örnekte, lambda fonksiyonunu map() fonksiyonunun içinde kullanacağız. Lambda fonksiyonu listedeki her değeri 10 ile çarpacak.

Örnek:

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 object at 0x000000BD18B11898>
[20, 30, 40, 50, 60, 70, 80, 90]

`map()` fonksiyonu içinde birden fazla yineleyici kullanmak

Örnek 1: map() fonksiyonuna iki liste yineleyici geçirme

map() fonksiyonuna aynı anda birden fazla yineleyici (örneğin, liste, demet vb.) gönderebilirsiniz.

Örneğin, iki listeyi toplamak istiyorsanız, bunu map() fonksiyonunu kullanarak yapabilirsiniz. Biz de my_list1 ve my_list2 olmak üzere iki liste kullanacağız.

Aşağıdaki örnekte, my_list1'deki ilk öğe my_list2'deki ilk öğeye eklenir. myMapFunc() fonksiyonu, my_list1 ve my_list2'deki öğeleri alır ve ikisinin toplamını döndürür.

İşte map() fonksiyonunu kullanarak verilen iki listeyi toplamanın çalışan bir örneği.

def myMapFunc(list1, list2):
    return list1+list2

my_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ı:

<map object at 0x0000004D5F751860>
[6, 11, 16, 21, 26, 31, 36]

Örnek 2: map() fonksiyonuna bir demet (tuple) ve bir liste yineleyici (list iterator) geçirme

`map()` fonksiyonunda bir liste ve bir demet yineleyici kullanacağız. `map()` fonksiyonuna verilen `myMapFunc()` fonksiyonu, listeden ve demetten öğeleri alacak. Öğeler alt çizgi (_) ile birleştirilecek. Çalışan örnek aşağıda gösterilmiştir:

def myMapFunc(list1, tuple1):
    return list1+"_"+tuple1

my_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ı:

<map object at 0x00000059F37BB4E0>
['a_PHP', 'b_Java', 'b_Python', 'd_C++', 'e_C']

SSS

Her ikisi de her öğeye bir işlem uygular. Liste anlama genellikle daha okunaklıdır ve doğrudan bir liste döndürürken, map() tembel bir harita nesnesi döndürür ve mevcut adlandırılmış bir fonksiyonu yeniden kullanırken daha hızlı olabilir.

Hayır. `map()` hiçbir zaman orijinal yinelenebilir nesneyi değiştirmez. Her öğeyi okur, fonksiyonunuzu uygular ve kaynak listeyi, demeti veya dizeyi dokunmadan bırakarak yeni bir tembel `map` nesnesi üretir.

In Python 3. `map()` tembel bir fonksiyondur: yalnızca yineleme yapıldığında değerleri hesaplayan bir `map` nesnesi döndürür. Bu, büyük veri kümelerinde bellekten tasarruf sağlar. Sonuç almak için `list()` içine alın veya üzerinde döngü oluşturun.

`map()` her öğeyi dönüştürür, `filter()` yalnızca bir testi geçen öğeleri tutar ve `reduce()` (functools'tan) tüm öğeleri tek bir değere birleştirir. Bunlar birlikte dönüştürme, seçme ve toplama işlemlerini kapsar.

Yineleyici nesnelerin uzunlukları farklı olduğunda, `map()` en kısa olanında durur. Daha uzun yineleyici nesnelerdeki fazladan öğeler göz ardı edilir, bu nedenle hata oluşmaz ve sonuç en kısa yineleyici nesneyle eşleşir.

Hayır. Bir map nesnesi, tek bir geçişten sonra tükenen bir yineleyicidir. Üzerinde döngü yaptığınızda veya list() fonksiyonunu çağırdığınızda boşalır. Yeniden kullanmanız gerekiyorsa önce onu bir listeye dönüştürün.

Makine öğreniminde, `map()` fonksiyonu, sayıları ölçeklendirme, metni belirteçlere ayırma veya eğitimden önce özellikleri dönüştürme gibi ön işleme fonksiyonlarını veri kümelerine uygular. Birçok örnek üzerinde aynı işlemi çalıştırmak için temiz ve işlevsel bir yol sunar.

Evet. GitHub Copilot, map() çağrılarını doğru fonksiyon ve yinelenebilir nesnelerle otomatik olarak tamamlar ve ajansal yapay zeka araçları döngüleri map() ifadelerine dönüştürebilir, ardından davranışın değişmediğini doğrulamak için testlerinizi çalıştırabilir.

Bu yazıyı şu şekilde özetleyin: