Dalam contoh ini, kita akan melihat program Python di mana kita dapat memutar elemen-elemen dari array yang diberikan. Di rotasi kiri, setiap elemen dari array yang diberikan digeser ke kiri dengan satu posisi dan elemen pertama dari array ditambahkan ke akhir daftar
Contoh.
#Initialize array
arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
#n determine the number of times an array should be rotated
n = 3;
#Displays original array
print["Original array: "];
for i in range[0, len[arr]]:
print[arr[i]],
#Rotate the given array by n times toward left
for i in range[0, n]:
#Stores the first element of the array
first = arr[0];
for j in range[0, len[arr]-1]:
#Shift element of array by one
arr[j] = arr[j+1];
#First element of array will be added to the end
arr[len[arr]-1] = first;
print[];
#Displays resulting array after rotation
print["Array after left rotation: "];
for i in range[0, len[arr]]:
print[arr[i]],
Keluaran
Susunan asli
1
2
3
4
5
6
7
8
9
Array setelah rotasi kiri
4
5
6
7
8
9
1
2
3
Ketika diperlukan untuk memutar elemen array ke kiri, array dapat diulang, dan tergantung pada jumlah rotasi kiri, indeks dapat bertambah berkali-kali
Di bawah ini adalah demonstrasi yang sama −
Contoh
Demo Langsung
my_list = [11, 12, 23, 34, 65] n = 3 print["The list is : "] for i in range[0, len[my_list]]: print[my_list[i]] for i in range[0, n]: first_elem = my_list[0] for j in range[0, len[my_list]-1]: my_list[j] = my_list[j+1] my_list[len[my_list]-1] = first_elem print[] print["Array after left rotating is : "] for i in range[0, len[my_list]]: print[my_list[i]]_
Keluaran
The list is : 11 12 23 34 65 Array after left rotating is : 34 65 11 12 23
Penjelasan
Daftar ditentukan, dan ditampilkan di konsol
Nilai untuk rotasi kiri ditentukan
Daftar diulang, dan indeks elemen dalam daftar bertambah, dan ditugaskan ke indeks sebelumnya dari daftar yang sama
Anda juga bisa menggunakan slicing untuk membuat dua daftar baru dan mengembalikan gabungan dari kedua daftar. Contoh berikut menunjukkan cara memutar daftar
k
posisi ke kanan menggunakan slicingPada artikel ini, kita akan belajar merotasi list dengan Python. Kami akan menggunakan beberapa fungsi bawaan, pendekatan sederhana, dan beberapa kode khusus juga. Pertama-tama mari kita lihat sekilas apa itu daftar di Python
Daftar Piton
Python memiliki tipe data bawaan yang disebut daftar. Ini seperti kumpulan array dengan metodologi berbeda. Data di dalam daftar dapat berupa tipe apa pun, katakanlah, bilangan bulat, string atau nilai float, atau bahkan tipe daftar. Daftar ini menggunakan nilai yang dipisahkan koma dalam tanda kurung siku untuk menyimpan data. Daftar dapat didefinisikan menggunakan nama variabel apa pun dan kemudian menetapkan nilai yang berbeda ke daftar dalam tanda kurung siku. Daftar ini dipesan, dapat diubah, dan memungkinkan nilai duplikat
list1 = ["Ram", "Arun", "Kiran"] list2 = [16, 78, 32, 67] list3 = ["apple", "mango", 16, "cherry", 3.4]
Rotasi daftar berarti mendorong dan menarik elemen dari kedua ujung daftar. Di rotasi kiri, setiap elemen daftar digeser ke sisi kirinya dengan satu posisi dan elemen pertama ditambahkan ke akhir daftar. Demikian pula, dalam rotasi kanan, setiap elemen daftar digeser ke sisi kanannya dengan satu posisi dan elemen terakhir ditambahkan ke awal daftar. Proses ini diikuti beberapa kali. Sekarang, kita akan membahas berbagai metode untuk merotasi daftar. Metode ini dapat melakukan Rotasi Kiri dan Rotasi Kanan dengan mengambil jumlah rotasi sebagai masukan
Contoh. Putar Daftar dengan menggunakan Teknik Pemotongan
Metode ini hanya memutar daftar dalam kode satu baris. Ini adalah metode yang paling umum dan efisien untuk mencapai rotasi daftar. Ini melakukan operasi pemotongan dengan mengambil jumlah rotasi. Dalam hal ini, ini memutar daftar l1, 3 spasi ke sisi kanan dan kiri. Itu bergabung dengan bagian irisan terakhir dari daftar dengan bagian irisan awal dari daftar. Anda dapat memberikan sejumlah rotasi sesuai dengan kebutuhan
_#input list l1 = [1, 4, 6, 7, 2] print["Original List : " + str[l1]] #left rotate by 3 l1 = l1[3:] + l1[:3] print["Left rotation of List by 3 : " + str[l1]] #right rotate by 3 l1 = l1[-3:] + l1[:-3] print["Right rotation of List by 3 : " + str[l1]]
Daftar Asli. [1, 4, 6, 7, 2]
Rotasi kiri Daftar dengan 3. [7, 2, 1, 4, 6]
Rotasi kanan Daftar dengan 3. [1, 4, 6, 7, 2]Contoh. Putar Daftar menggunakan Pemahaman Daftar
Metode ini dilakukan dalam satu baris menggunakan List Comprehension. Dalam metode ini, kami hanya menugaskan kembali indeks ke setiap nilai ke posisi tertentu setelah rotasi. Ganti saja 3 dengan jumlah rotasi yang Anda inginkan
#input list l1 = [1, 4, 6, 7, 2] print["Original List : " + str[l1]] #left rotate by 3 l1 = [l1[[i + 3] % len[l1]] for i, x in enumerate[l1]] print ["Left rotation of List by 3 : " + str[l1]] #right rotate by 3 l1 = [l1[[i - 3] % len[l1]] for i, x in enumerate[l1]] print ["Right rotation of List by 3 : " + str[l1]]
Daftar Asli. [1, 4, 6, 7, 2]
Rotasi kiri Daftar dengan 3. [7, 2, 1, 4, 6]
Rotasi kanan Daftar dengan 3. [1, 4, 6, 7, 2]Contoh. Putar Daftar menggunakan Modul Koleksi
Metode ini mengimpor
deque
_ dari modulcollections
Python.deque[]
kelas menyediakan fungsi
0 untuk melakukan Rotasi Daftar. Ini juga merupakan cara yang efisien untuk memutar daftar karena lebih cepat daripada teknik mengiris. Ini dioptimalkan untuk menarik dan mendorong kedua ujungnya#input list l1 = [1, 4, 6, 7, 2] print["Original List : " + str[l1]] #left rotate by 3 l1 = l1[3:] + l1[:3] print["Left rotation of List by 3 : " + str[l1]] #right rotate by 3 l1 = l1[-3:] + l1[:-3] print["Right rotation of List by 3 : " + str[l1]]
deque[]
_ - Dibutuhkan daftar sebagai argumen dan mengubahnya menjadi objek deque
_0 - Ini diterapkan pada objek deque dan menggunakan jumlah rotasi sebagai argumen. Itu hanya memutar daftar#input list l1 = [1, 4, 6, 7, 2] print["Original List : " + str[l1]] #left rotate by 3 l1 = l1[3:] + l1[:3] print["Left rotation of List by 3 : " + str[l1]] #right rotate by 3 l1 = l1[-3:] + l1[:-3] print["Right rotation of List by 3 : " + str[l1]]
Indeks negatif diberikan untuk melakukan rotasi ke kiri sedangkan indeks positif diberikan untuk melakukan rotasi ke kanan
_from collections import deque #input list l1 = [1, 4, 6, 7, 2] print ["Original List : " + str[l1]] #left rotate by 3 l1 = deque[l1] l1.rotate[-3] l1 = list[l1] print ["Left rotation of List by 3 : " + str[l1]] #right rotate by 3 l1 = deque[l1] l1.rotate[3] l1 = list[l1] print ["Right rotation of List by 3 : " + str[l1]]
Daftar Asli. [1, 4, 6, 7, 2]
Rotasi kiri Daftar dengan 3. [7, 2, 1, 4, 6]
Rotasi kanan Daftar dengan 3. [1, 4, 6, 7, 2]Contoh. Rotasi Kanan Daftar dengan Menambahkan Elemen ke Daftar Baru
Metode ini meningkatkan Kompleksitas Ruang program. Metode ini membuat daftar kosong dan menyimpan daftar yang dimodifikasi ke dalam daftar baru. Cara kerjanya mirip dengan pemahaman daftar. Ini mengulangi daftar pertama satu per satu dan kemudian menempatkan elemen pada posisi yang sesuai dalam daftar kedua menggunakan fungsi
3#input list l1 = [1, 4, 6, 7, 2] print["Original List : " + str[l1]] #left rotate by 3 l1 = l1[3:] + l1[:3] print["Left rotation of List by 3 : " + str[l1]] #right rotate by 3 l1 = l1[-3:] + l1[:-3] print["Right rotation of List by 3 : " + str[l1]]
#number of rotations num = 3 l1 = [1, 2, 3, 4, 5, 6] l2 = [] # Will add values from n to the new list for ele in range[len[l1] - num, len[l1]]: l2.append[l1[ele]] # Will add the values before n to the end of new list for ele in range[0, len[l1] - num]: l2.append[l1[ele]] print["Right rotation of List by 3 : " + str[l2]]
Rotasi kanan Daftar dengan 3. [4, 5, 6, 1, 2, 3]Contoh. Rotasi kanan Daftar menggunakan len[] dan Slicing Technique
Metode ini juga melibatkan teknik Slicing tetapi bersama dengan fungsi
4#input list l1 = [1, 4, 6, 7, 2] print["Original List : " + str[l1]] #left rotate by 3 l1 = l1[3:] + l1[:3] print["Left rotation of List by 3 : " + str[l1]] #right rotate by 3 l1 = l1[-3:] + l1[:-3] print["Right rotation of List by 3 : " + str[l1]]
#number of rotations num = 3 #input list l1 = [1, 2, 3, 4, 5, 6] l1 = [l1[len[l1] - num:len[l1]] + l1[0:len[l1] - num]] print["Right rotation of List by 3 : " + str[l1]]
Rotasi kanan Daftar dengan 3. [4, 5, 6, 1, 2, 3]Contoh. Rotasi Daftar menggunakan Modul NumPy
Modul Numpy Python menyediakan fungsi roll[] bawaan untuk melakukan rotasi pada array. Pertama, ini membuat array dengan melewatkan rentang [nilai awal, nilai terakhir [dikecualikan]] menggunakan fungsi
5. Kemudian, larik dan jumlah rotasi diteruskan sebagai argumen ke fungsi#input list l1 = [1, 4, 6, 7, 2] print["Original List : " + str[l1]] #left rotate by 3 l1 = l1[3:] + l1[:3] print["Left rotation of List by 3 : " + str[l1]] #right rotate by 3 l1 = l1[-3:] + l1[:-3] print["Right rotation of List by 3 : " + str[l1]]
6#input list l1 = [1, 4, 6, 7, 2] print["Original List : " + str[l1]] #left rotate by 3 l1 = l1[3:] + l1[:3] print["Left rotation of List by 3 : " + str[l1]] #right rotate by 3 l1 = l1[-3:] + l1[:-3] print["Right rotation of List by 3 : " + str[l1]]
import numpy arr = numpy.arange[1,10] print["Orignial array : ", arr] #right rotate by 3 print["Right rotation by 3 : ", numpy.roll[arr,3]] #left rotate by 3 print["Left rotation by 3 : ", numpy.roll[arr,-3]]
Susunan asli. [1 2 3 4 5 6 7 8 9]
Rotasi kanan sebesar 3. [7 8 9 1 2 3 4 5 6]
Rotasi kiri sebesar 3. [4 5 6 7 8 9 1 2 3]Kesimpulan
Pada artikel ini, kami belajar untuk memutar daftar dengan menggunakan beberapa fungsi bawaan seperti
deque[]
,
4,#input list l1 = [1, 4, 6, 7, 2] print["Original List : " + str[l1]] #left rotate by 3 l1 = l1[3:] + l1[:3] print["Left rotation of List by 3 : " + str[l1]] #right rotate by 3 l1 = l1[-3:] + l1[:-3] print["Right rotation of List by 3 : " + str[l1]]
3,#input list l1 = [1, 4, 6, 7, 2] print["Original List : " + str[l1]] #left rotate by 3 l1 = l1[3:] + l1[:3] print["Left rotation of List by 3 : " + str[l1]] #right rotate by 3 l1 = l1[-3:] + l1[:-3] print["Right rotation of List by 3 : " + str[l1]]
0 dan juga menggunakan teknik#input list l1 = [1, 4, 6, 7, 2] print["Original List : " + str[l1]] #left rotate by 3 l1 = [l1[[i + 3] % len[l1]] for i, x in enumerate[l1]] print ["Left rotation of List by 3 : " + str[l1]] #right rotate by 3 l1 = [l1[[i - 3] % len[l1]] for i, x in enumerate[l1]] print ["Right rotation of List by 3 : " + str[l1]]
1 dan#input list l1 = [1, 4, 6, 7, 2] print["Original List : " + str[l1]] #left rotate by 3 l1 = [l1[[i + 3] % len[l1]] for i, x in enumerate[l1]] print ["Left rotation of List by 3 : " + str[l1]] #right rotate by 3 l1 = [l1[[i - 3] % len[l1]] for i, x in enumerate[l1]] print ["Right rotation of List by 3 : " + str[l1]]
2. Kami juga menggunakan beberapa kode khusus. Kami membahas bahwa dari semua metode#input list l1 = [1, 4, 6, 7, 2] print["Original List : " + str[l1]] #left rotate by 3 l1 = [l1[[i + 3] % len[l1]] for i, x in enumerate[l1]] print ["Left rotation of List by 3 : " + str[l1]] #right rotate by 3 l1 = [l1[[i - 3] % len[l1]] for i, x in enumerate[l1]] print ["Right rotation of List by 3 : " + str[l1]]
3 adalah metode yang paling efisien untuk melakukan operasi rotasi daftar. Semua metode ini memiliki Kompleksitas Waktu sama dengan 0[n] karena satu iterasi tunggal pada elemen daftar#input list l1 = [1, 4, 6, 7, 2] print["Original List : " + str[l1]] #left rotate by 3 l1 = [l1[[i + 3] % len[l1]] for i, x in enumerate[l1]] print ["Left rotation of List by 3 : " + str[l1]] #right rotate by 3 l1 = [l1[[i - 3] % len[l1]] for i, x in enumerate[l1]] print ["Right rotation of List by 3 : " + str[l1]]
Bagaimana cara memutar daftar ke kiri?
Rotasi Kiri Daftar .Pada langkah pertama, kita akan membuat variabel temp dan menyimpan elemen pertama dari list di dalamnyaSelanjutnya, kita akan memindahkan elemen dalam satu posisi ke arah kiriSekarang, kami mengganti nilai yang ada di indeks terakhir dalam daftar dengan nilai yang tersedia di tempBagaimana Anda memutar daftar dengan Python?
Cara merotasi daftar dengan Python .Dengan melintasiDengan mengirisMenggunakan fungsi len[]Menggunakan pemahaman DaftarKita bisa menggunakan koleksi. deque. memutar[]Bagaimana Anda membiarkan memutar angka dengan Python?
Pendekatan. Ikuti langkah-langkah di bawah ini untuk menyelesaikan masalah. .Inisialisasi sebuah variabel, misalnya X, untuk menyimpan jumlah digit dalam NPerbarui K = [K + X] % X untuk menguranginya menjadi kasus rotasi kiriHapus K digit pertama dari N dan tambahkan semua digit yang dihapus di sebelah kanan digit NTerakhir, cetak nilai NBagaimana Anda memutar string kiri dengan Python?
Pendekatannya sangat sederhana, Pisahkan string menjadi dua bagian pertama & kedua, untuk rotasi Kiri Lfirst = str[0. d] dan Ldetik = str[d. ] . Untuk Rotasi Kanan Rfirst = str[0. len[str]-d] dan Rdetik = str[len[str]-d. ]. Sekarang gabungkan kedua bagian ini kedua + pertama sesuai dengan itu.