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(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']

