Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Program Python untuk memutar elemen senarai

Program Python untuk memutar elemen senarai

WBOY
WBOYke hadapan
2023-08-19 10:01:091371semak imbas

Program Python untuk memutar elemen senarai

Dalam Python, anda boleh menggunakan senarai untuk mengekalkan berbilang item dalam satu pembolehubah. Senarai ialah salah satu daripada empat jenis data terbina dalam Python yang digunakan untuk menyimpan koleksi data. Tiga jenis lagi, tupel, set, dan kamus, masing-masing mempunyai fungsi yang berbeza. Senarai dibina menggunakan kurungan segi empat sama. Oleh kerana senarai tidak semestinya homogen, ia adalah alat yang paling berguna dalam Python. Senarai boleh mengandungi jenis data seperti rentetan, objek dan integer. Senarai boleh diubah suai selepas ia dijana kerana ia boleh berubah.

Artikel ini memfokuskan pada pintasan dan banyak jalan pintas untuk menyatakan konsep dalam satu ayat atau satu perkataan. Operasi ini sangat penting untuk pengaturcara dan boleh mencapai banyak kerja. Kami akan menggunakan Python untuk menunjukkan empat cara berbeza untuk menyelesaikan tugas ini.

Menggunakan Kefahaman Senarai

Apabila menggunakan kaedah ini, kita hanya perlu menetapkan semula indeks setiap elemen dalam senarai selepas putaran pada kedudukan tertentu. Oleh kerana pelaksanaannya yang lebih kecil, pendekatan ini memainkan peranan penting dalam menyelesaikan tugasan.

Algoritma

  • Mentakrifkan senarai dahulu.

  • Gunakan pemahaman senarai.

  • Untuk menggunakan dua sisi berbeza kanan(i-index) dan kiri(i+index).

  • Cetak senarai output.

Tatabahasa

#rotateleft

list_1 = [list_1[(i + 3) % len(list_1)]

#Untuk pusingan kanan

list_1 = [list_1[(i - 3) % len(list_1)]

Contoh

Di sini, dalam kod ini kami telah menggunakan pemahaman senarai untuk memutarkan elemen dalam senarai yang diputarkan ke kanan dan ke kiri Untuk gelung digunakan untuk mengulangi senarai elemen.

list_1 = [10, 14, 26, 37, 42]
print (" Primary list : " + str(list_1))
list_1 = [list_1[(i + 3) % len(list_1)]
   for i, x in enumerate(list_1)]
print ("Output of the list after left rotate by 3 : " + str(list_1))
list_1 = [list_1[(i - 3) % len(list_1)]
   for i, x in enumerate(list_1)]
print ("Output of the list after right rotate by 3(back to primary list) : "+str(list_1))
list_1 = [list_1[(i + 2) % len(list_1)]
   for i, x in enumerate(list_1)]
print ("Output of the list after left rotate by 2 : " + str(list_1))
list_1 = [list_1[(i - 2) % len(list_1)]
   for i, x in enumerate(list_1)]
print ("Output of the list after right rotate by 2 : "+ str(list_1))

Output

Primary list : [10, 14, 26, 37, 42]
Output of the list after left rotate by 3 : [37, 42, 10, 14, 26]
Output of the list after right rotate by 3(back to primary list) : [10, 14, 26, 37, 42]
Output of the list after left rotate by 2 : [26, 37, 42, 10, 14]
Output of the list after right rotate by 2 : [10, 14, 26, 37, 42]

Di sini, dalam kod ini kami telah menggunakan pemahaman senarai untuk memutarkan elemen dalam senarai yang diputarkan ke kanan dan ke kiri Untuk gelung digunakan untuk mengulangi senarai elemen.

Guna hirisan

Teknik khusus ini ialah teknik standard Dengan nombor putaran, ia hanya menyambungkan komponen yang dihiris kemudian ke bahagian yang dihiris lebih awal.

Algoritma

  • Mentakrifkan senarai dahulu.

  • Gunakan kaedah menghiris.

  • Cetak setiap senarai selepas pusingan kanan dan kiri.

Tatabahasa

UNTUK HIRIS

#rotateleft -

list_1 = list_1[3:] + list_1[:3]

#putarkan kanan -

list_1 = list_1[-3:] + list_1[:-3]

Contoh

Atur cara berikut menyusun semula elemen senarai Senarai asal ialah [11, 34, 26, 57, 92]. [57, 92, 11, 34, 26]. Kemudian putar ke kanan sebanyak 3 supaya tiga elemen terakhir bergerak ke kedudukan asalnya [11,34,26,57,92].

Kemudian putar ke kanan 2 kali untuk menggerakkan dua elemen terakhir ke hadapan, mendapatkan [26, 57, 92, 11, 34]. Akhir sekali, putar ke kiri sekali dan gerakkan satu elemen dari awal hingga akhir, mendapatkan [57, 92, 11, 34, 26].

list_1 = [11, 34, 26, 57, 92]
print (" Primary list : " + str(list_1))
list_1 = list_1[3:] + list_1[:3]
print ("Output of the list after left rotate by 3 : " + str(list_1))
list_1 = list_1[-3:] + list_1[:-3]
print ("Output of the list after right rotate by 3(back to Primary list) : "+str(list_1))
list_1 = list_1[-2:] + list_1[:-2]
print ("Output of the list after right rotate by 2 : "+ str(list_1))
list_1 = list_1[1:] + list_1[:1]
print ("Output of the list after left rotate by 1 : " + str(list_1))

Output

Primary list : [11, 34, 26, 57, 92]
Output of the list after left rotate by 3 : [57, 92, 11, 34, 26]
Output of the list after right rotate by 3(back to Primary list) : [11, 34, 26, 57, 92]
Output of the list after right rotate by 2 : [57, 92, 11, 34, 26]
Output of the list after left rotate by 1 : [92, 11, 34, 26, 57]

Menggunakan Modul Numpy

Menggunakan paksi yang diberikan, kita juga boleh menggunakan modul numpy.roll dalam python untuk memutarkan elemen dalam senarai. Elemen tatasusunan input akan dialihkan dengan sewajarnya. Jika sesuatu elemen dialihkan dari kedudukan pertama ke kedudukan terakhir, ia akan kembali ke kedudukan asalnya.

Algoritma

    Import modul numpy.roll
  • Tentukan senarai dan berikan indeks tertentu.
  • Cetak senarai output.
  • Contoh

Senarai 'nombor' dibuat dan diberikan nilai 1, 2, 4, 10, 18 dan 83. Pembolehubah i ditetapkan kepada 1. Fungsi

np.roll()

daripada perpustakaan NumPy kemudian digunakan pada nombor senarai dengan hujah i yang mengalihkan setiap elemen dalam senarai dengan 1 kedudukan indeks (elemen pertama menjadi yang terakhir).

import numpy as np
if __name__ == '__main__':
   number = [1, 2, 4, 10, 18, 83]
   i = 1
   x = np.roll(number, i)
   print(x)
Output

[83 1 2 4 10 18]

Usingcollections.deque.rotate()

Fungsi

rotate() ialah fungsi terbina dalam yang disediakan oleh kelas deque dalam modul koleksi dan digunakan untuk melaksanakan operasi putaran. Walaupun kurang dikenali, fungsi ini lebih praktikal.

Algoritma

    Mula-mula import kelas deque dari modul koleksi.
  • Tentukan senarai
  • Cetak senarai induk
  • Gunakan fungsi rotate() untuk memutar elemen
  • Cetak output.
  • Contoh

Program berikut menggunakan struktur data deque dari modul koleksi untuk memutar senarai asal dicetak, kemudian berputar ke kiri sebanyak 3 dan mencetak senarai baru yang diputarkan kemudian berputar ke kanan (kembali ke kedudukan asalnya). 3 dan mencetak senarai yang terhasil.

from collections import deque
list_1 = [31, 84, 76, 97, 82]
print ("Primary list : " + str(list_1))
list_1 = deque(list_1)
list_1.rotate(-3)
list_1 = list(list_1)
print ("Output list after left rotate by 3 : " + str(list_1))
list_1 = deque(list_1)
list_1.rotate(3)
list_1 = list(list_1)
print ("Output list after right rotate by 3(back to primary list) : "+ str(list_1))

Output

Primary list : [31, 84, 76, 97, 82]
Output list after left rotate by 3 : [97, 82, 31, 84, 76]
Output list after right rotate by 3(back to primary list) : [31, 84, 76, 97, 82]

Kesimpulan

Dalam artikel ini, kami menerangkan secara ringkas empat cara berbeza untuk memutar elemen dalam senarai.

Atas ialah kandungan terperinci Program Python untuk memutar elemen senarai. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam