Apa gunanya peta dalam daftar di python?

Di Python, Anda dapat menggunakan

for i in map(abs, l):
    print(i)
# 2
# 1
# 0
_2 untuk menerapkan fungsi bawaan, ekspresi lambda (
for i in map(abs, l):
    print(i)
# 2
# 1
# 0
3), fungsi yang didefinisikan dengan
for i in map(abs, l):
    print(i)
# 2
# 1
# 0
4, dll. , ke semua item iterables seperti list dan tuple

Artikel ini menjelaskan konten berikut

  • Penggunaan dasar
    for i in map(abs, l):
        print(i)
    # 2
    # 1
    # 0
    
    2
    • for i in map(abs, l):
          print(i)
      # 2
      # 1
      # 0
      
      2 mengembalikan iterator di Python3
    • Konversikan ke daftar
  • Terapkan ekspresi lambda (
    for i in map(abs, l):
        print(i)
    # 2
    # 1
    # 0
    
    _3)
  • Terapkan fungsi yang ditentukan dengan
    for i in map(abs, l):
        print(i)
    # 2
    # 1
    # 0
    
    4
  • Tentukan beberapa iterables sebagai argumen
  • Gunakan pemahaman daftar dan ekspresi generator sebagai gantinya
  • Gunakan NumPy sebagai gantinya

Perhatikan bahwa

for i in map(abs, l):
    print(i)
# 2
# 1
# 0
_2 dapat diganti dengan pemahaman daftar atau ekspresi generator. Seperti yang dijelaskan nanti, lebih baik menggunakannya dalam banyak kasus

  • Daftar pemahaman dengan Python

Tautan Bersponsor

Penggunaan dasar for i in map(abs, l): print(i) # 2 # 1 # 0 2

Argumen pertama dari

for i in map(abs, l):
    print(i)
# 2
# 1
# 0
_2 adalah objek yang dapat dipanggil seperti fungsi yang akan diterapkan, dan argumen kedua adalah objek yang dapat diulang seperti daftar

for i in map(abs, l): print(i) # 2 # 1 # 0 2 mengembalikan iterator di Python3

Terapkan fungsi bawaan

for i in l:
    print(abs(i))
# 2
# 1
# 0
_3 yang mengembalikan nilai absolut

Dalam Python 3,

for i in map(abs, l):
    print(i)
# 2
# 1
# 0
2 mengembalikan objek bertipe
for i in l:
    print(abs(i))
# 2
# 1
# 0
5 yang merupakan iterator, dan
for i in l:
    print(abs(i))
# 2
# 1
# 0
6 tidak menampilkan item

l = [-2, -1, 0]
print(map(abs, l))
# <map object at 0x10651a400>

print(type(map(abs, l)))
# <class 'map'>

sumber.

Nilai iterator dapat diambil dengan pernyataan

for i in l:
    print(abs(i))
# 2
# 1
# 0
7

  • for loop dengan Python (dengan range, enumerate, zip, dll. )

for i in map(abs, l):
    print(i)
# 2
# 1
# 0

sumber.

Hasil yang sama diperoleh jika proses dijalankan dalam blok

for i in l:
    print(abs(i))
# 2
# 1
# 0
7 tanpa menggunakan
for i in map(abs, l):
    print(i)
# 2
# 1
# 0
2

for i in l:
    print(abs(i))
# 2
# 1
# 0

sumber.

Perhatikan bahwa

for i in map(abs, l):
    print(i)
# 2
# 1
# 0
2 di Python 2 mengembalikan daftar, jadi berhati-hatilah saat menjalankan kode Python 2 di Python 3

Konversikan ke daftar

Jika Anda ingin mengonversi hasil

for i in map(abs, l):
    print(i)
# 2
# 1
# 0
2 menjadi daftar, gunakan
print(list(map(abs, l)))
# [2, 1, 0]
2

print(list(map(abs, l)))
# [2, 1, 0]

sumber.

Misalnya, terapkan

print(list(map(abs, l)))
# [2, 1, 0]
_3 ke daftar string untuk mengubahnya menjadi daftar jumlah karakter

  • Dapatkan panjang string (jumlah karakter) dengan Python

l_s = ['apple', 'orange', 'strawberry']
print(list(map(len, l_s)))
# [5, 6, 10]

sumber.

Dalam argumen kedua

for i in map(abs, l):
    print(i)
# 2
# 1
# 0
2, tidak hanya daftar tetapi juga iterable seperti tuple atau
print(list(map(abs, l)))
# [2, 1, 0]
5 dapat ditentukan

  • Cara menggunakan range() dengan Python

print(list(map(abs, range(-2, 1))))
# [2, 1, 0]

sumber.

Terapkan ekspresi lambda (for i in map(abs, l): print(i) # 2 # 1 # 0 _3)

Jika Anda ingin menerapkan proses apa pun alih-alih fungsi bawaan, gunakan ekspresi lambda (

for i in map(abs, l):
    print(i)
# 2
# 1
# 0
3)

  • Ekspresi Lambda dengan Python

l = [-2, -1, 0]
print(list(map(lambda x: x**2, l)))
# [4, 1, 0]

sumber.

Terapkan fungsi yang ditentukan dengan for i in map(abs, l): print(i) # 2 # 1 # 0 4

Dimungkinkan juga untuk mendefinisikan fungsi dengan

for i in map(abs, l):
    print(i)
# 2
# 1
# 0
4 dan menentukannya sebagai argumen pertama dari
for i in map(abs, l):
    print(i)
# 2
# 1
# 0
2

  • Definisikan dan panggil fungsi dengan Python (def, return)

def square(x):
    return x**2

print(list(map(square, l)))
# [4, 1, 0]

sumber.

Tautan Bersponsor

Tentukan beberapa iterables sebagai argumen

Anda dapat menentukan lebih banyak iterables seperti

l_s = ['apple', 'orange', 'strawberry']
print(list(map(len, l_s)))
# [5, 6, 10]
1

Jika beberapa iterable ditentukan, argumen pertama harus berupa fungsi yang menerima jumlah argumen tersebut. Kesalahan dimunculkan jika jumlah iterables tidak cocok dengan jumlah argumen yang diterima fungsi

l_1 = [1, 2, 3]
l_2 = [10, 20, 30]
print(list(map(lambda x, y: x * y, l_1, l_2)))
# [10, 40, 90]

# print(list(map(abs, l_1, l_2)))
# TypeError: abs() takes exactly one argument (2 given)

sumber.

Jika iterables memiliki ukuran yang berbeda (jumlah item), item tambahan akan diabaikan

l_3 = [100, 200, 300, 400]
print(list(map(lambda x, y, z: x * y * z, l_1, l_2, l_3)))
# [1000, 8000, 27000]

sumber.

Gunakan pemahaman daftar dan ekspresi generator sebagai gantinya

Proses yang sama seperti

for i in map(abs, l):
    print(i)
# 2
# 1
# 0
_2 dapat dicapai dengan pemahaman daftar dan ekspresi generator

for i in map(abs, l):
    print(i)
# 2
# 1
# 0
0

sumber.

Jika Anda ingin mendapatkan daftar seperti

l_s = ['apple', 'orange', 'strawberry']
print(list(map(len, l_s)))
# [5, 6, 10]
_3, gunakan pemahaman daftar, dan jika Anda ingin mendapatkan iterator seperti
for i in map(abs, l):
    print(i)
# 2
# 1
# 0
2, gunakan ekspresi generator

  • Daftar pemahaman dengan Python

Seperti yang ditunjukkan dalam pertanyaan Stack Overflow berikut, dalam banyak kasus, menggunakan pemahaman daftar dan ekspresi generator lebih disukai daripada

for i in map(abs, l):
    print(i)
# 2
# 1
# 0
2 karena kodenya lebih ringkas dan jelas

  • python - Pemahaman daftar vs peta - Stack Overflow

Untuk kecepatan pemrosesan, jawaban berikut diberikan

    • Daftar pemahaman dan
      l_s = ['apple', 'orange', 'strawberry']
      print(list(map(len, l_s)))
      # [5, 6, 10]
      
      3
      • Saat menerapkan fungsi bawaan,
        l_s = ['apple', 'orange', 'strawberry']
        print(list(map(len, l_s)))
        # [5, 6, 10]
        
        3 lebih cepat
      • Saat menerapkan ekspresi lambda, pemahaman daftar lebih cepat
    • Ekspresi generator dan
      for i in map(abs, l):
          print(i)
      # 2
      # 1
      # 0
      
      2
      • for i in map(abs, l):
            print(i)
        # 2
        # 1
        # 0
        
        _2 lebih cepat

Perhatikan bahwa, karena kecepatan pemrosesan dapat bervariasi karena berbagai faktor, jika kecepatan penting bagi Anda, disarankan untuk mengukurnya dalam kondisi yang sedekat mungkin dengan asumsi Anda

  • Ukur waktu eksekusi dengan timeit di Python

Gunakan NumPy sebagai gantinya

Dalam hal daftar angka, proses

for i in map(abs, l):
    print(i)
# 2
# 1
# 0
2 juga dapat direalisasikan dengan NumPy. Kode ini bahkan lebih jelas daripada
for i in map(abs, l):
    print(i)
# 2
# 1
# 0
2 dan daftar pemahaman

for i in map(abs, l):
    print(i)
# 2
# 1
# 0
_1

sumber.

NumPy lebih cepat untuk daftar besar dan pemrosesan yang rumit. NumPy menyediakan berbagai fungsi, jadi Anda harus mencobanya jika Anda sedang memproses array angka

Mengapa kita menggunakan peta dalam daftar dengan Python?

Map dengan Python adalah fungsi yang berfungsi sebagai iterator untuk mengembalikan hasil setelah menerapkan fungsi ke setiap item iterable (tuple, list, dll. ). Ini digunakan ketika Anda ingin menerapkan fungsi transformasi tunggal ke semua elemen iterable . Iterable dan fungsi diteruskan sebagai argumen ke peta dengan Python.

Apa yang dilakukan peta dalam daftar?

Fungsi map() (yang merupakan fungsi bawaan di Python) digunakan untuk menerapkan fungsi ke setiap item dalam iterable (like a Python list or dictionary). It returns a new iterable (a map object) that you can use in other parts of your code.

Apakah peta () mengembalikan daftar?

Python map() fungsi . Ini adalah iterable yang harus dipetakan. CATATAN. Anda dapat melewatkan satu atau lebih iterable ke fungsi map(). Pengembalian. Mengembalikan daftar hasil setelah menerapkan fungsi yang diberikan ke setiap item dari iterable yang diberikan (list, tuple dll. )

Apa fungsi peta () dan bagaimana cara kerjanya?

map() membuat larik baru dari pemanggilan fungsi untuk setiap elemen larik . map() memanggil fungsi satu kali untuk setiap elemen dalam array. map() tidak menjalankan fungsi untuk elemen kosong.