


Keputusan yang pelik apabila mengalih keluar item daripada senarai sambil melelakan senarai dalam Python
Saya ada kod ini:
numbers = list(range(1, 50)) for i in numbers: if i < 20: numbers.remove(i) print(numbers)
Namun, hasil yang saya dapat ialah:
[2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49]
Sudah tentu, saya berharap tidak akan ada nombor di bawah 20 dalam keputusan. Nampaknya saya melakukan sesuatu yang salah semasa memadam.
Jawapan Betul
Anda sedang mengubah suai senarai sambil mengulanginya. Ini bermakna kali pertama melalui gelung, nilai i == 1
,因此1
被从列表中删除。然后for
循环转到列表中的第二项,它不是2
,而是3
!然后将其从列表中删除,然后 for
循环继续执行列表中的第三项,现在是 5。依此类推。也许这样更容易可视化,用 ^ 指向 i
ialah:
[1, 2, 3, 4, 5, 6...] ^
Ini ialah keadaan awal senarai; kemudian 1
dialih keluar dan gelung pergi ke item kedua dalam senarai:
[2, 3, 4, 5, 6...] ^ [2, 4, 5, 6...] ^
Tunggu.
Tiada cara yang baik untuk menukar panjang senarai sambil mengulanginya. Perkara terbaik yang boleh anda lakukan ialah ini:
numbers = [n for n in numbers if n >= 20]
Atau ini, untuk perubahan di tempat (perkara dalam kurungan ialah ungkapan penjana yang secara tersirat ditukar kepada tupel sebelum penetapan hirisan):
numbers[:] = (n for n in numbers if n >= 20)
Jika anda ingin mengambil tindakan n
sebelum memadamkannya, satu helah yang boleh anda cuba ialah:
for i, n in enumerate(numbers): if n < 20: print("do something") numbers[i] = None numbers = [n for n in numbers if n is not None]
Atas ialah kandungan terperinci Keputusan yang pelik apabila mengalih keluar item daripada senarai sambil melelakan senarai dalam Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



short ialah jenis data primitif dalam Java yang mewakili integer bertanda 16-bit dalam julat -32,768 hingga 32,767. Ia sering digunakan untuk mewakili integer kecil, seperti pembilang atau ID, dan menyokong operasi aritmetik asas dan penukaran jenis. Tetapi kerana pendek ialah jenis yang ditandatangani, anda perlu berhati-hati apabila menggunakan pembahagian untuk mengelakkan limpahan atau aliran bawah.

Fungsi IFNULL menyemak sama ada ungkapan adalah NULL dan mengembalikan nilai lalai yang ditentukan jika ya, jika tidak, ia mengembalikan nilai ungkapan. Ia menghalang nilai nol daripada menyebabkan ralat, membenarkan manipulasi nilai nol, dan meningkatkan kebolehbacaan pertanyaan. Penggunaan termasuk: menggantikan nilai nol dengan nilai lalai, tidak termasuk nilai nol daripada pengiraan, dan penggunaan bersarang untuk mengendalikan berbilang situasi nilai nol.

Dalam bahasa C, tingkah laku operator bahagian / bergantung pada jenis data operan: Pembahagian integer: Apabila operan ialah integer, pembahagian integer dilakukan dan hasilnya dibundarkan ke bawah. Pembahagian titik terapung: Apabila operan ialah nombor titik terapung, pembahagian titik terapung dilakukan dan hasilnya ialah nombor titik terapung. Penukaran jenis: Apabila satu operan ialah integer dan satu lagi tidak, integer secara tersirat ditukar kepada nombor titik terapung, dan kemudian pembahagian titik terapung dilakukan. Pembahagi dengan 0: Ralat matematik berlaku apabila pembahagi ialah 0. Operasi modulo: Gunakan operator % untuk operasi modulo dan bukannya pembahagian modulo.

Jenis char dalam Java digunakan untuk menyimpan satu aksara Unicode, merangkumi 2 bait, antara U+0000 hingga U+FFFF Ia digunakan terutamanya untuk menyimpan aksara teks Ia boleh dimulakan melalui petikan tunggal atau urutan melarikan diri Unicode. dan boleh mengambil bahagian dalam perbandingan, Kesamaan, ketidaksamaan dan operasi bergabung boleh ditukar secara tersirat kepada jenis int atau ditukar secara eksplisit kepada objek Aksara.

Peraturan pemadanan lampau fungsi C++ adalah seperti berikut: padankan nombor dan jenis parameter dalam panggilan. Susunan parameter mestilah konsisten. Constness dan pengubah rujukan mesti sepadan. Parameter lalai boleh digunakan.

Asterisk (*) dalam MySQL bermaksud "semua" dan mempunyai kegunaan yang berbeza: Pilih semua lajur Pilih semua baris JOIN kad bebas untuk jadual LIKE klausa Pengkuantiti untuk klausa REGEXP Penukaran jenis tersirat

Operator tambah (+) dalam Oracle boleh digunakan untuk: menggabungkan rentetan, nombor, tarikh, dan selang masa mengendalikan nilai NULL dan menukar nilai NULL kepada bukan NULL;

Jenis parameter fungsi PHP termasuk jenis skalar (integer, nombor titik terapung, rentetan, nilai Boolean, nilai nol), jenis komposit (tatasusunan, objek) dan jenis khas (fungsi panggil balik, parameter berubah). Fungsi boleh menukar parameter jenis yang berbeza secara automatik, tetapi ia juga boleh memaksa jenis tertentu melalui pengisytiharan jenis untuk mengelakkan penukaran tidak sengaja dan memastikan ketepatan parameter.
