Jika saya punya list=[1,2,3]
dan saya ingin menambahkan 1
ke setiap elemen untuk mendapatkan output [2,3,4]
, bagaimana saya melakukannya?
Saya berasumsi saya akan menggunakan for for loop tetapi tidak yakin bagaimana caranya.
new_list = [x+1 for x in my_list]
lst = [1, 2, 3]; e = lst[0]; e += 1
.e
tidak memiliki informasi tentang dari mana asalnya, itu hanya variabel tempat elemen daftar telah ditetapkan. Setelah menetapkan sesuatu yang lain untuk itu, daftarlst
tidak akan berubah.new_list = (x+1 for x in my_list)
python daftar-pemahaman .
sumber
Jawaban lain pada pemahaman daftar mungkin yang terbaik untuk penambahan sederhana, tetapi jika Anda memiliki fungsi yang lebih kompleks yang Anda butuhkan untuk diterapkan ke semua elemen maka peta mungkin cocok.
Dalam contoh Anda itu akan menjadi:
sumber
map(1 .__add__, ...)
bekerja juga. Perhatikan bahwa Anda memerlukan ruang di antara1
dan.
untuk mencegah pengurai berpikir itu adalah pelampungjika Anda ingin menggunakan numpy ada metode lain sebagai berikut
sumber
Sunting: ini bukan di tempat
Pertama, jangan gunakan kata 'daftar' untuk variabel Anda. Membayangi kata kunci
list
.Cara terbaik adalah melakukannya di tempat menggunakan splicing, perhatikan yang
[:]
menunjukkan sambatan:sumber
_list[:]=(i+1 for i in _list)
,._list[:]=(i+1 for i in _list)
membuat daftar baru?Maksud saya di sini adalah untuk mengekspos jika item dalam daftar adalah bilangan bulat yang mendukung berbagai fungsi bawaan.
sumber
Python 2+:
Python 3+:
sumber
pemberian yang mana
sumber
Datang di cara yang tidak begitu efisien, tetapi unik untuk melakukannya. Jadi bagikan di seluruh. Dan ya itu membutuhkan ruang ekstra untuk daftar lain.
sumber
from operator import add
sumber
Banyak jawaban di atas sangat bagus. Saya juga melihat beberapa jawaban aneh yang akan melakukan pekerjaan itu. Juga, jawaban terakhir yang terlihat adalah melalui loop normal. Kesediaan untuk memberikan jawaban ini menuntun saya ke
itertools
dannumpy
, yang akan melakukan pekerjaan yang sama dengan cara yang berbeda.Di sini saya menyajikan berbagai cara untuk melakukan pekerjaan itu, tidak dijawab di atas.
Keluaran
Satu-satunya alasan saya untuk menyoroti penggunaan
numpy
adalah bahwa kita harus selalu melakukan manipulasi seperti itu dengan perpustakaan seperti numpy karena ini efisien untuk array yang sangat besar.sumber