Kebalikan dari string dalam python menggunakan for loop

Ini adalah usaha saya menggunakan dekorator dan for loop. Taruh semuanya dalam satu file

Detail implementasi

def reverse(func):
    def reverse_engine(items):
        partial_items = []
        for item in items:
            partial_items = [item] + partial_items
        return func(partial_items)
    return reverse_engine

Penggunaan

Contoh 1

@reverse
def echo_alphabets(word):
    return ''.join(word)

echo_alphabets('hello')
# olleh
_

Contoh 2

@reverse
def echo_words(words):
    return words

echo_words([':)', '3.6.0', 'Python', 'Hello'])
# ['Hello', 'Python', '3.6.0', ':)']

Contoh 3

@reverse
def reverse_and_square(numbers):
    return list(
        map(lambda number: number ** 2, numbers)
    )

reverse_and_square(range(1, 6))
# [25, 16, 9, 4, 1]

Program ini menggunakan perulangan while sama seperti di atas. Namun, kami baru saja mengganti For Loop dengan While Loop. Di sini, fungsi len digunakan untuk mencari panjang dari total karakter dalam sebuah kalimat

Ada sejumlah besar fungsi bawaan yang ada di juru bahasa python yang tersedia dengan mudah untuk menyelesaikan masalah apa pun dengan solusi paling optimal. Namun, ketika kita melihat fungsi perpustakaan string di python untuk manipulasi string, tidak ada fungsi "reverse ()" maka metode lain yang tercantum dan dijelaskan di bawah ini akan sangat membantu untuk memecahkan masalah tersebut.

Apa itu string?

String menurut definisi adalah tipe data yang tidak dapat diubah yang tidak dapat diubah setelah dideklarasikan dalam suatu program. Kumpulan karakter apa pun yang dilampirkan dalam tanda kutip tunggal atau ganda menunjukkan sebuah string

Pengindeksan dalam string dengan python

Kami menggunakan indeks untuk memudahkan akses karakter/nilai apa pun dalam string. Indeks adalah lokasi untuk karakter tertentu dalam sebuah string

Berikut adalah contoh pengindeksan string

Kebalikan dari string dalam python menggunakan for loop

Untuk mengakses karakter apa pun dari string, kita dapat menggunakan salah satu dari dua nilai yang dipetakan padanya, tercantum dalam tabel di atas. Diberikan di bawah ini, adalah contoh untuk hal yang sama

print(name[2])
print(name[-7])

Keluaran

Bagaimana cara membalikkan string?

Pada artikel ini kita akan membahas membalikkan string menggunakan metode berikut

  1. Menggunakan for loop
  2. Menggunakan perulangan while
  3. Menggunakan sintaks irisan yang diperluas
  4. Menggunakan fungsi join
  5. Menggunakan fungsi terbalik()
  6. Menggunakan rekursi
  7. Menggunakan tumpukan

Menggunakan Untuk Loop

Dalam metode ini, kami memanggil fungsi yang membalikkan string dengan membuat variabel baru (string kosong) yang akan menyimpan string terbalik kami setelah kami mengulangi string input kami dengan menambahkan setiap karakter ke awal string

Metode ini umumnya lambat karena perulangan, serta salinan yang kita buat setiap kali kita menambahkan karakter ke string

Kebalikan dari string dalam python menggunakan for loop

Kode

def reverse(s: str):
  reversed = ""
  for ch in s:
    reversed = ch + reversed
  return reversed

s = "abcd"
print(reverse(s))

Keluaran

Begini cara kerja kodenya

Awalnya, "terbalik" adalah string kosong. Kami kemudian melanjutkan dengan for loop yang berjalan untuk setiap karakter (ch) di string kami (s)

Pada string s, perulangan for dimulai dengan karakter 'a'. Pernyataan kami

terbalik = ch + terbalik

membuat string terbalik saat ini = a. Dalam iterasi berikutnya dari for loop, karakternya adalah 'b', dan sesuai pernyataan, menjadi

b + string terbalik saat ini yang hanya 'a', sehingga membuat string terbalik = ba

Ini berlanjut hingga karakter terakhir, membalikkan string

Klik di sini, untuk mengetahui lebih banyak tentang for loop di python

Menggunakan While Loop

Untuk membalikkan string menggunakan while loop di python, kami memerlukan pointer yang menunjuk ke karakter terakhir dalam string. Fungsi len() bawaan, yang mengembalikan panjang string, dapat digunakan untuk menyetel nilai awal penunjuk

Saat kami terus mengurangi nilai pointer, itu menunjuk ke karakter yang diperlukan dalam membalikkan string. Kompleksitas waktu dari pendekatan ini adalah O(n)

Kebalikan dari string dalam python menggunakan for loop

Kode

def reverse(s):
  reversed = ""
  count = len(s)
  while count > 0:
    reversed += s[count - 1]  
    count = count - 1
  return reversed

s = "interview"
print(reverse(s))
_

Keluaran

Menggunakan Sintaks Extended Slice

Cara sederhana untuk memahami sintaks extended slice adalah slice[start. berhenti]. Irisan dimulai di lokasi yang ditentukan oleh awal, berhenti sebelum lokasi berhenti tercapai, dan bergerak mulai dengan satu posisi lalu ke item langkah berikutnya.

Kebalikan dari string dalam python menggunakan for loop

[-1. 0. -1] berarti kita mulai dari indeks terakhir len(string)-1 naik ke 0 yang tidak termasuk, mengambil langkah -1 yang artinya, mundur

Katakanlah kita mengiris string seperti – string[. 2]. Ini pada dasarnya mewakili string[0. -1. 2], yang berarti bergerak dari awal, hingga akhir, dengan langkah 2

Oleh karena itu penggunaan string[. -1] akan membalikkan string, karena kita akan bergerak dalam langkah negatif

Sintaks irisan yang diperluas berada di bawah pemahaman daftar dan merupakan metode tercepat untuk membalikkan string

Kode

def reverse(s):
  return s[::-1]
s = "interview"
print(reverse(s))

Keluaran

Menggunakan fungsi join() dan reversed()

Python menyediakan fungsi yang disebut "terbalik ()" untuk daftar, yang mengembalikan objek iterator terbalik khusus. Objek iterator pada dasarnya adalah sesuatu yang perlu diulang (atau diulang) untuk menghasilkan elemennya

Jika kita tidak memberikannya kepada. bergabung itu hanya akan mencetak repr dari objek terbalik

Repr adalah representasi string dari objek yang dapat dievaluasi, pada dasarnya adalah sesuatu yang dapat digunakan untuk membuat ulang objek

misalnya

>>> from decimal import Decimal 
>>> a = Decimal(1.25)
>>> print(a) 1.25 <---- this is from __str__ 
>>> a Decimal('1.25') <---- this is from __repr__
_

Kami memberikan "". bergabung dengan iterable sebagai argumen, yang di sini adalah objek terbalik dan bergabung dengan elemen untuk menghasilkan string

Ada cara lain untuk mengkonsumsinya tanpa bergabung yang menghasilkan objek yang berbeda. Misalnya, daftar mengambil objek terbalik dan membuat daftar dari elemen yang dihasilkannya

a = reversed('pqrs') 
print(list(a))
_

Keluaran

Jika pada akhirnya Anda membutuhkan string, maka opsi terbaik adalah menggunakan. Ikuti

Kode

def reverse(s):
  reversed_str = "".join(reversed(s))
  return reversed_str

Lihat artikel ini untuk mengetahui lebih banyak tentang Join() dengan Python

Menggunakan rekursi

Kita dapat membalikkan string menggunakan rekursi dengan menemukan apa yang kita sebut – kasus dasar dan kasus rekursif. Pengamatan kecil yang dapat kita lakukan di sini adalah jika panjang string sama dengan 0, string dapat dikembalikan, yang akan menjadi kasus dasar.

Kasus rekursif adalah ketika panjang string tidak sama dengan 0. Dalam hal ini, kita memanggil fungsi balik secara rekursif dan mengiris string sedemikian rupa sehingga kita hanya menyisakan karakter pertama, kemudian menggabungkannya ke akhir string yang diiris

Kebalikan dari string dalam python menggunakan for loop

Kode

def reverse(s):
  if len(s) == 0:  # base case
    return s
  else:
            # adding the first character at the end after slicing
    return reverse(s[1:]) + s[0] 


s = "interview"
print(reverse(s))

Keluaran

Menggunakan tumpukan

Stack adalah tipe struktur data "Last In First Out (LIFO)". Ini berarti bahwa karakter terakhir yang akan dimasukkan ke dalam tumpukan akan menjadi yang pertama dicetak. Ini membantu dalam membalikkan string. Satu per satu setiap karakter akan didorong ke dalam tumpukan dan kemudian dikeluarkan, mengembalikan string terbalik

Bagaimana Anda menemukan kebalikan dari string di Python?

Kami memiliki string, "Hello World", yang ingin kami balikkan. .
String ke Balik. txt = "Halo Dunia" [. -1] cetak(txt).
Iris Tali. txt = "Halo Dunia" [. -1].
Iris Tali. def fungsi_saya(x). .
Kembalikan Tali. def fungsi_saya(x). .
Panggil Fungsi. def fungsi_saya(x). .
Cetak Hasilnya. def fungsi_saya(x)

Apa fungsi Reverse () di Python?

Python terbalik() . computes the reverse of a given sequence object and returns it in the form of a list.

Bisakah Anda menggunakan reverse () pada string?

Kelas String memerlukan fungsi reverse() , oleh karena itu pertama-tama ubah string input menjadi StringBuffer, menggunakan metode StringBuffer. Kemudian gunakan metode reverse() untuk membalikkan string.