Rumah >pembangunan bahagian belakang >Tutorial Python >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.
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.
Mentakrifkan senarai dahulu.
Gunakan pemahaman senarai.
Untuk menggunakan dua sisi berbeza kanan(i-index) dan kiri(i+index).
Cetak senarai output.
#rotateleft
list_1 = [list_1[(i + 3) % len(list_1)]
#Untuk pusingan kanan
list_1 = [list_1[(i - 3) % len(list_1)]
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))
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.
Teknik khusus ini ialah teknik standard Dengan nombor putaran, ia hanya menyambungkan komponen yang dihiris kemudian ke bahagian yang dihiris lebih awal.
Algoritma#rotateleft -
list_1 = list_1[3:] + list_1[:3]#putarkan kanan -
list_1 = list_1[-3:] + list_1[:-3]Contoh
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]
Algoritma
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]
Algoritma
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]
Atas ialah kandungan terperinci Program Python untuk memutar elemen senarai. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!