Rumah > pembangunan bahagian belakang > Tutorial Python > Adakah Mengubah Suai Entri Senarai Semasa Lelaran Selamat, dan Bagaimana Saya Boleh Melakukannya dengan Betul?

Adakah Mengubah Suai Entri Senarai Semasa Lelaran Selamat, dan Bagaimana Saya Boleh Melakukannya dengan Betul?

DDD
Lepaskan: 2024-12-18 16:08:15
asal
672 orang telah melayarinya

Is Modifying List Entries During Iteration Safe, and How Can I Do It Correctly?

Mengubah suai Entri Senarai Semasa Lelaran Gelung

Secara amnya tidak digalakkan untuk mengubah suai senarai semasa gelung berulang. Walau bagaimanapun, apabila bekerja dengan senarai rentetan yang memerlukan manipulasi rentetan, seseorang mungkin tertanya-tanya sama ada menggantikan rentetan dalam senarai itu merupakan pengubahsuaian.

Adakah Pengubahsuaian Mutasi Nilai Di Tempat?

Pendekatan berikut dianggap boleh diterima kerana ia mengubah suai elemen selepas ianya diproses:

a = ['a', ' b', 'c ', ' d ']

for i, s in enumerate(a):
    a[i] = s.strip()

print(a) # ['a', 'b', 'c', 'd']
Salin selepas log masuk

Bezakan ini dengan pendekatan berikut:

a[:] = [s.strip() for s in a]
Salin selepas log masuk

Yang terakhir memerlukan membuat senarai sementara dan menetapkannya, yang boleh menjadi mahal dari segi pengiraan berbanding dengan pengubahsuaian di tempat .

Awas: Mengemas kini Panjang

Walaupun mutasi nilai di tempat dibenarkan, mengubah panjang senarai boleh membawa kepada masalah. Memadamkan elemen semasa lelaran, contohnya, boleh mengakibatkan pengindeksan yang salah:

b = ['a', ' b', 'c ', ' d ']

for i, s in enumerate(b):
    if s.strip() != b[i]:  # Check for whitespace
        del b[i]

print(b) # ['a', 'c '] # Incorrect result
Salin selepas log masuk

Pemadaman Berkesan Semasa Gelung

Untuk memadamkan entri di tempat dengan berkesan semasa lelaran, pertimbangkan pendekatan berikut:

b = ['a', ' b', 'c ', ' d ']

b[:] = [entry for entry in b if entry.strip() == entry]

print(b) # ['a'] # Correct result
Salin selepas log masuk

Kesimpulannya, walaupun senarai boleh diubah suai entri semasa gelung untuk melalui mutasi nilai di tempat, adalah penting untuk berhati-hati apabila mengubah suai panjang senarai untuk mengelakkan akibat yang tidak dijangka. Memadamkan entri, khususnya, memerlukan pengendalian khas untuk mengekalkan integriti lelaran.

Atas ialah kandungan terperinci Adakah Mengubah Suai Entri Senarai Semasa Lelaran Selamat, dan Bagaimana Saya Boleh Melakukannya dengan Betul?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan