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 slicing
Pada 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 modul collections
Python. deque()
kelas menyediakan 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))
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 ujungnyadeque()
_ - Dibutuhkan daftar sebagai argumen dan mengubahnya menjadi objek deque
#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 - Ini diterapkan pada objek deque dan menggunakan jumlah rotasi sebagai argumen. Itu hanya memutar daftarIndeks 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
#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#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
#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))
4#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
#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))
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))
6import 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()
,
#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))
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[(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))
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
Bagaimana cara memutar daftar ke kiri?
Rotasi Kiri Daftar .
Pada langkah pertama, kita akan membuat variabel temp dan menyimpan elemen pertama dari list di dalamnya
Selanjutnya, kita akan memindahkan elemen dalam satu posisi ke arah kiri
Sekarang, kami mengganti nilai yang ada di indeks terakhir dalam daftar dengan nilai yang tersedia di temp
Bagaimana Anda memutar daftar dengan Python?
Cara merotasi daftar dengan Python .
Dengan melintasi
Dengan mengiris
Menggunakan fungsi len()
Menggunakan pemahaman Daftar
Kita 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 N
Perbarui K = (K + X) % X untuk menguranginya menjadi kasus rotasi kiri
Hapus K digit pertama dari N dan tambahkan semua digit yang dihapus di sebelah kanan digit N
Terakhir, cetak nilai N
Bagaimana 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.