Terapkan operasi ke daftar 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

Bagaimana cara menerapkan fungsi yang sama ke semua elemen daftar dengan Python?

Cara terbaik untuk menerapkan fungsi ke setiap elemen daftar adalah dengan menggunakan fungsi map() bawaan Python yang mengambil fungsi dan satu atau lebih iterables sebagai argumen . Itu kemudian menerapkan fungsi ke setiap elemen iterables. Cara alternatif adalah dengan menggunakan pemahaman daftar. . It then applies the function to each element of the iterables. An alternate way is to use list comprehension.

Bisakah Anda memasukkan fungsi ke dalam daftar Python?

Dengan Python, Anda dapat menggunakan fungsi daftar yang membuat koleksi yang dapat dimanipulasi untuk analisis Anda. Kumpulan data ini disebut objek daftar.

Bagaimana Anda mengoperasikan semua elemen dalam daftar Python?

Pendekatan lain yang dapat digunakan untuk melakukan operasi pada setiap elemen dalam daftar adalah menggunakan perulangan for bersama dengan fungsi enumerate(). The enumerate() function returns an iterator that produces tuples containing the index and value of each element in the list.

Operasi apa yang dapat dilakukan pada daftar?

Operasi pada daftar .
Akses elemen daftar. .
Menambahkan (atau Menambahkan) elemen ke daftar. .
Daftar Sortir. .
Perbarui elemen daftar. .
Hapus elemen daftar. .
Pop elemen daftar. .
Panjang/Jumlah elemen dalam daftar. .
Elemen maksimum dalam daftar