Bagaimana saya membuat daftar dengan nilai di antara dua nilai yang saya masukkan? Misalnya, daftar berikut dihasilkan untuk nilai dari 11 hingga 16:
list = [11, 12, 13, 14, 15, 16]
Gunakan range
. Dalam Python 2.x ia mengembalikan daftar sehingga yang Anda butuhkan adalah:
>>> range(11, 17)
[11, 12, 13, 14, 15, 16]
Dalam Python 3.x range
adalah iterator. Jadi, Anda perlu mengubahnya menjadi daftar:
>>> list(range(11, 17))
[11, 12, 13, 14, 15, 16]
Catatan : Angka kedua adalah eksklusif. Jadi, di sini perlu 16+1
=17
EDIT:
Untuk menanggapi pertanyaan tentang penambahan oleh 0.5
, opsi termudah mungkin adalah menggunakan numpy arange()
dan .tolist()
:
>>> import numpy as np
>>> np.arange(11, 17, 0.5).tolist()
[11.0, 11.5, 12.0, 12.5, 13.0, 13.5,
14.0, 14.5, 15.0, 15.5, 16.0, 16.5]
step
parameter ketiga tapi itu masih int - bukan float. Anda tidak dapat melakukannya dengan tepat di lib standar.Anda sepertinya mencari
range()
:Untuk menambah dengan
0.5
alih-alih1
, katakan:sumber
list
sebagai variabel.list
adalah kelas builtin, jadi penggunaannya sebagai variabel agak tidak dianjurkanMencoba:
Itu adalah daftar di Python 2.x dan berperilaku sebagian besar seperti daftar di Python 3.x. Jika Anda menjalankan Python 3 dan membutuhkan daftar yang dapat Anda modifikasi, maka gunakan:
sumber
Jika Anda mencari rentang seperti fungsi yang bekerja untuk tipe float, maka di sini adalah artikel yang sangat bagus .
Keluaran:
sumber
Gunakan pemahaman daftar dalam python. Karena Anda ingin 16 dalam daftar juga .. Gunakan x2 +1. Fungsi rentang tidak termasuk batas yang lebih tinggi dalam fungsi.
sumber
range()
tidak perlu menggunakan daftar pemahamanlist(range(x1, x2+1))
.dengan asumsi Anda ingin memiliki kisaran antara x ke y
gunakan daftar untuk dukungan 3.x
sumber
Dengan python Anda bisa melakukannya dengan sangat mudah
atau Anda dapat membuat fungsi rekursif yang mengembalikan array ke nomor yang diberikan:
output: ar = [10,9,8,7,6,5,4,3,2,1,0]
sumber
Cara paling elegan untuk melakukan ini adalah dengan menggunakan
range
fungsi namun jika Anda ingin membuat kembali logika ini Anda dapat melakukan sesuatu seperti ini:Ini menghasilkan output:
Seperti yang diungkapkan sebelumnya oleh @Jared, cara terbaik adalah menggunakan
range
ataunumpy.arrange
namun saya menemukan kode yang menarik untuk dibagikan.sumber
[x for x in range(10, 3, 1)]
- argumen pertama adalah awal, akhir kedua dan terakhir langkah. ==> stop> startSetiap jawaban di atas menganggap kisaran hanya dari angka positif. Berikut adalah solusi untuk mengembalikan daftar angka berurutan di mana argumen dapat berupa (positif atau negatif), dengan kemungkinan untuk menetapkan nilai langkah opsional (default = 1).
Misalnya, perintah standar
list(range(1,-3))
mengembalikan daftar kosong[]
, sementara fungsi ini akan kembali[-3,-2,-1,0,1]
Diperbarui : sekarang langkah mungkin negatif. Terima kasih @Michael atas komentarnya.
sumber
i_min = -3, i_max = 1
any_number_range(i_max, i_min))
kembali[-3,-2,-1,0,1]
tetapi, builtinlist(range(i_min, i_max + 1))
akan mengembalikan nilai yang sama.list(range(1,-3, -1))