Saya punya daftarnya
a = [49, 51, 53, 56]
Bagaimana cara mengurangi 13 dari setiap nilai bilangan bulat dalam daftar?
Saya punya daftarnya
a = [49, 51, 53, 56]
Bagaimana cara mengurangi 13 dari setiap nilai bilangan bulat dalam daftar?
Dengan pemahaman daftar:
a = [x - 13 for x in a]
def minus13(a):
pada baris diatasnya dan membuat indentasi satu tingkat.
- person Ignacio Vazquez-Abrams; 07.02.2011
a[:]
di lhs alih-alih hanya menugaskan kembali ke a
? Bukankah a[:]
membuat salinan daftar?
- person istruble; 07.02.2011
a
di lhs.
- person istruble; 07.02.2011
minus13()
adalah fungsi yang Anda tetapkan dalam kode Anda, yang mengembalikan hasil pemahaman daftar. Sisanya adalah pembuatan daftar dan pemanggilan fungsi yang terjadi di tempat lain dalam kode Anda.
- person Ignacio Vazquez-Abrams; 07.02.2011
a = [x - 13 for x in a]
akan berfungsi dengan baik, dan tidak terlalu membingungkan.
- person Lennart Regebro; 07.02.2011
Jika Anda sering bekerja dengan angka, Anda mungkin ingin melihat NumPy. Ini memungkinkan Anda melakukan semua jenis operasi secara langsung pada array numerik. Misalnya:
>>> import numpy
>>> array = numpy.array([49, 51, 53, 56])
>>> array - 13
array([36, 38, 40, 43])
Anda dapat menggunakan fungsi map():
a = list(map(lambda x: x - 13, a))
Untuk memperjelas solusi yang sudah diposting karena pertanyaan di komentar
import numpy
array = numpy.array([49, 51, 53, 56])
array = array - 13
akan menghasilkan:
susunan([36, 38, 40, 43])
Ini akan berhasil:
for i in range(len(a)):
a[i] -= 13
i
) dapat melakukan iterasi melalui semua nilai indeks yang mungkin. Variabel indeks ini diperlukan untuk mengubah setiap elemen dalam daftar.
- person Santa; 07.02.2011