Daftar putar kiri dengan python

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 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 ujungnya

    deque()_ - 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 daftar

    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

    #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)) 
    6

    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(),

    #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.