Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Memutar Senarai dengan Cekap dalam Python?

Bagaimanakah Saya Boleh Memutar Senarai dengan Cekap dalam Python?

Susan Sarandon
Susan Sarandonasal
2024-12-15 10:07:14980semak imbas

How Can I Efficiently Rotate a List in Python?

Putaran Senarai yang Cekap dalam Python

Memutar senarai merujuk kepada mengalihkan elemennya bilangan kedudukan tertentu ke mana-mana arah. Walaupun kod yang disediakan menggunakan penghirisan berfungsi, terdapat peningkatan prestasi yang boleh dicapai.

Menggunakan Collections.Deque

Pustaka standard Python menyediakan struktur data yang lebih cekap untuk operasi sedemikian: collections.deque. Deques dioptimumkan untuk melaksanakan operasi seperti enqueue dan dequeue dari kedua-dua hujung. Mereka juga menawarkan kaedah rotate() khusus.

Untuk menggunakan deque untuk penggiliran senarai, ikut langkah berikut:

  1. Import kelas deque: dari collections import deque.
  2. Mulakan deque daripada senarai asal: item = deque(list()).
  3. Untuk memutarkan kemudian, gunakan kaedah rotate(), menyatakan bilangan kedudukan untuk beralih. Nilai positif beralih ke kanan, manakala nilai negatif beralih ke kiri.
  4. Dapatkan item pertama daripada deque menggunakan popleft() atau popright() untuk mendapatkan senarai diputar.

Contoh

Pertimbangkan perkara berikut contoh:

from collections import deque

items = deque([1, 2, 3])
items.rotate(1)        # deque == [3, 1, 2]
items.rotate(-1)       # deque returns to original state: [1, 2, 3]
item = items.popleft() # deque == [2, 3]

Dalam kes ini, deque bermula sebagai [1, 2, 3]. Selepas berputar sekali ke kanan, ia menjadi [3, 1, 2]. Memutar kembali ke kiri mengembalikannya kepada susunan asalnya. Akhir sekali, mengalih keluar item pertama menghasilkan deque yang mengandungi [2, 3].

Dengan menggunakan kaedah deque dan rotate(), anda boleh mencapai putaran senarai yang cekap dalam Python.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memutar Senarai dengan Cekap dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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