Hapus nomor dari daftar rentang

Nov 17 2020
print(list(range(0, n+1, 10)))

Jadi saya ingin mencetak daftar perkalian positif 10 hingga dan termasuk n. Tapi saya tidak yakin bagaimana saya akan menghapus 0ketika mencetak daftar karena 0tidak dihitung sebagai bilangan bulat positif. Saya baru mengenal pemrograman jadi satu-satunya hal yang saya coba adalah

a = list(range(0, n+1, 10))
a.remove(0)
print(a)

Tapi saya bertanya-tanya apakah saya bisa melakukan semuanya dalam satu baris bersama print(list(range(0, n+1, 10)))

Jawaban

3 Samwise Nov 17 2020 at 22:14

Opsi termudah adalah memulai rentang Anda pada 10 daripada 0:

>>> n = 100
>>> list(range(10, n+1, 10))
[10, 20, 30, 40, 50, 60, 70, 80, 90, 100]

Solusi yang lebih umum untuk masalah "bagaimana cara mendapatkan rentang ini dikurangi jenis angka ini" mungkin menggunakan pemahaman daftar alih-alih list()fungsi, dan menambahkan ifklausa:

>>> [x for x in range(0, n+1, 10) if x > 0]
[10, 20, 30, 40, 50, 60, 70, 80, 90, 100]

Ini memungkinkan Anda melakukan hal-hal yang lebih rumit seperti "berikan saya kelipatan 10 yang bukan juga kelipatan 30":

>>> [x for x in range(0, n+1, 10) if x % 30]
[10, 20, 40, 50, 70, 80, 100]
3 dantechguy Nov 17 2020 at 22:14

range, dokumentasi di sini , mendukung parameter berbeda, yang merupakan masukan berbeda yang mengarah ke keluaran berbeda seperti yang mungkin Anda ketahui.

Parameter pertama adalah nilai awal , jadi jika Anda melakukannya:

n = 60
list(range(10, n+1, 10))

maka itu akan mencetak kelipatan 10, mulai dari 10:

[10, 20, 30, 40, 50, 60]
an4s911 Nov 17 2020 at 22:11

Ini harus bekerja:

a = list(range(10, n+1, 10))